我的QRect
对象是一个固定大小的纯文本包含,当文本太多时我会截断文本并在末尾跟踪...
。例如,Longlonglonglong
被截断为Longlong...
。但是当鼠标指针在矩形上方时,我想在气泡中显示全长文本。
泡沫就像Go to Google Home
:
这可能吗?
答案 0 :(得分:2)
不幸的是QPainter
无法为您执行此操作,drawText(..)
标志不支持它。值得庆幸的是,你可以使用QFontMetrics
预先删除它的文本(“eliding”是你用elipsis截断的地方):
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 );
当你说“鼠标指针结束时气泡中的文字”时,我认为你的意思是工具提示 - 在这种情况下,正常情况下为小部件实现它并提供全文而不是删除。