我的QRect
对象是一个固定大小的纯文本容器,当文本太多时,我会截断文本并...
在末尾跟踪。例如,Longlonglonglong
被截断为Longlong...
. 但是当鼠标指针位于矩形上方时,我想在气泡中显示全长文本。
气泡就像Go to Google Home
:
这可能吗 ?
不幸的是QPainter
,不能为您做到这一点,drawText(..)
标志不支持它。值得庆幸的是,您可以使用以下命令预先省略文本(“省略”是您用省略号截断的地方)QFontMetrics
:
QFontMetrics fontM( QApplication::font() );
QRect r( 0, 0, 30, 10 );
QString text = "Longlonglonglong";
QString elidedText = fontM.elidedText( text, Qt::ElideRight, r.width() );
painter->drawText( r, Qt::AlignLeft, elidedText );
当您说“鼠标指针结束时气泡中的文本”时,我认为您的意思是工具提示 - 在这种情况下,正常为小部件实现它并提供全文而不是省略。