2013-07-02 44 views
0

我的QRect對象是純文本的固定大小的包含者,當文本太多時我會截斷文本並在末尾跟蹤...。例如,Longlonglonglong被截斷爲Longlong...。但是我想在鼠標指針位於矩形上時在泡泡中顯示全長文字。Qt - 當鼠標懸停在QRect對象上時彈出一個氣泡

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

這可能嗎?

+2

'QRect'是描述矩形的幾何類型 - 它不能「包含」任何東西。你實際使用的是什麼? – cmannett85

+0

@ cmannett85我用這個:'void QPainter :: drawText(const QRectF&rectangle,int flags,const QString&text,QRectF * boundingRect = 0)'。也許'容器'不適合。 – CDT

回答

2

不幸的是QPainter不能爲你做,drawText(..)標誌不支持它。值得慶幸的是,你可以預先的Elid文本爲它(「eliding」是你有一個省略號截斷)使用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); 

當你說「文本中,當鼠標指針懸停在泡沫」,我相信你的意思是一個工具提示 - 在這種情況下,按照正常的方式實現它,並給出全文而不是消失。

相關問題