2013-06-20 36 views
4

需要在粗體和多色字符的工具提示中顯示2行文本,但似乎工具提示的最大寬度和文本被剪切。我試圖計算文本的寬度和手動設置寬度,但它沒有產生任何效果,似乎style =「width:some px」不適用於工具提示。下面的代碼:如何設置Qt工具提示寬度

編輯

QString tooltip = "<div style= \"white-space: nowrap; width: 1500px;\">Some text for tooltip, which is too long</div>"; 

there is no effect on tooltip

如何更改提示寬度?

+0

我不希望在沒有表標記的情況下擁有tr和td。你有沒有試過保持它[簡單?](http://stackoverflow.com/questions/4795757/is-there-a-better-way-to-wordwrap-text-in-qtooltip-than-just-using-regexp)即只是使用br替代第二行?此外,似乎沒有必要使用QString :: fromStdString。 – Huy

+0

>似乎沒有必要使用QString :: fromStdString 是的,我編輯真正的代碼,在發佈此問題之前,我使用std :: string變量。 :) 你說得對,我可以不使用tr/td關閉文字換行,只能通過

IKM2007

+0

那麼對於工具提示的寬度怎麼樣?有任何想法嗎? – IKM2007

回答

3

使用QtCreator/Designer的性能部分,我用:

<html> 
<table width="25"> 
    <tr> 
    <td width="25">alwkefjwekf</td> 
    </tr> 
    <tr> 
    <td width="25">a ea ea ea ea ea ea ea ea ea ea ea ea ea ea ea ea e</td> 
    </tr> 
</table> 
</html> 

這應有助於線索你如何更好地限制了表的大小。我毫不懷疑,可能有更簡潔的方式來表達這一點。

通過QtCreator產生一個具體的例子:

pushButton->setToolTip(QApplication::translate("MainWindow", " <html>\n" 
" <table width=\"25\"><tr><td width=\"25\">alwkefjwekf</td></tr>\n" 
" <tr><td width=\"25\">a ea ea ea ea ea ea ea ea ea ea ea ea ea ea ea ea e</td></tr>\n" 
" </table>\n" 
" </html>", 0)); 
1

這是一點點吸塵器...
另外,不設置「空白:NOWRAP;」,這樣做,用小寬度將切斷文本
而且,如果可能的話,不要硬代碼的類名,因爲沒有__CLASS__我用__FUNCTION__

如果你真的想爲Qt語言類名(translate函數)確保RTTI編譯器選項打開並且 使用typeid(*this).name()

setToolTip(QApplication::translate(__FUNCTION__, " <html>\n" 
                " <div style=\"width: 300px;\">ea ea ea ea ea ea ea ea ea ea ea ea ea ea ea ea ea ea ea ea ea</div>" 
                " </html>", 0 
           ));