0
我的QRect
對象是純文本的固定大小的包含者,當文本太多時我會截斷文本並在末尾跟蹤...
。例如,Longlonglonglong
被截斷爲Longlong...
。但是我想在鼠標指針位於矩形上時在泡泡中顯示全長文字。Qt - 當鼠標懸停在QRect對象上時彈出一個氣泡
泡沫就像Go to Google Home
:
這可能嗎?
我的QRect
對象是純文本的固定大小的包含者,當文本太多時我會截斷文本並在末尾跟蹤...
。例如,Longlonglonglong
被截斷爲Longlong...
。但是我想在鼠標指針位於矩形上時在泡泡中顯示全長文字。Qt - 當鼠標懸停在QRect對象上時彈出一個氣泡
泡沫就像Go to Google Home
:
這可能嗎?
不幸的是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);
當你說「文本中,當鼠標指針懸停在泡沫」,我相信你的意思是一個工具提示 - 在這種情況下,按照正常的方式實現它,並給出全文而不是消失。
'QRect'是描述矩形的幾何類型 - 它不能「包含」任何東西。你實際使用的是什麼? – cmannett85
@ cmannett85我用這個:'void QPainter :: drawText(const QRectF&rectangle,int flags,const QString&text,QRectF * boundingRect = 0)'。也許'容器'不適合。 – CDT