0

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

气泡就像Go to Google Home
在此处输入图像描述

这可能吗 ?

4

1 回答 1

2

不幸的是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 );

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

于 2013-07-02T12:32:22.537 回答