版權聲明:本文為博主原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
本文鏈接:https://blog.csdn.net/xiezhongyuan07/article/details/83589722
我們在使用QLabel進行內容顯示的時候,通常有一個最大長度,超過這個長度怎么辦呢?一個QLabel不可能顯示無限長的字符串啊,這時候我們可以考慮,如果字符串長度太長的時候,我們就顯示其中的一部分,剩下的用...顯示。
比如說我們要顯示“1234567890abcdefghijklmnopqrstuvwxyz”,能不能顯示成“12345...”或者“123...xyz”這樣的呢?答案是肯定的。
只需要很短的代碼就能夠實現:
QString newStrMsg = "1234567890abcdefghijklmnopqrstuvwxyz";
QFontMetrics fontWidth(ui->noteValueLabel->font());//得到每個字符的寬度
QString elideNote = fontWidth.elidedText(newStrMsg, Qt::ElideRight, 150);//最大寬度150像素
ui->noteValueLabel->setText(elideNote);//顯示省略好的字符串
ui->noteValueLabel->setToolTip(newStrMsg);//設置tooltips
其中QFontMetrics::eliedText 這個函數,就是自動處理字符串得,如果想要最后面省略,中間的值Qt::ElideRight表示省略最右邊的字符。還有其他選項
————————————————
版權聲明:本文為CSDN博主「漫步繁華街」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/xiezhongyuan07/article/details/83589722