Qt - 鼠标悬停在QRect对象上时弹出气泡

时间:2013-07-02 11:40:37

标签: c++ qt

我的QRect对象是一个固定大小的纯文本包含,当文本太多时我会截断文本并在末尾跟踪...。例如,Longlonglonglong被截断为Longlong...。但是当鼠标指针在矩形上方时,我想在气泡中显示全长文本。

泡沫就像Go to Google Home
enter image description here

这可能吗?

1 个答案:

答案 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 );

当你说“鼠标指针结束时气泡中的文字”时,我认为你的意思是工具提示 - 在这种情况下,正常情况下为小部件实现它并提供全文而不是删除。