簡體   English   中英

在沒有自動換行的情況下適合QLabel高度

[英]Fit QLabel height without WordWrap

我需要進行手動換行,因為Qt的本機WordWrap在錯誤的位置分割。 我已經對文本進行了換行,但是內容並未顯示所有內容。 QLabel像圖像一樣切割頂部和底部:

我可以在沒有wordWrap的情況下使Qlabel適應其內部文本的高度嗎?

QLabel放置在布局中,則QLabel應該自動將其調整為所需的高度,是否啟用wordWrap都無關緊要,請參見doc: http : //doc.qt.io/qt-5/layout.html

我把它寫成height可擴展的:

QLabel lbl;
int count = 0;
QString str = "";

// set lbl text 
lbl.setText("hfdsf\ncsad\nfsc\dajkjkjkjhhkdkca\n925");
str = lbl.text();

for(int i = 0;i < str.length();i++)
    if(str.at(i).cell() == '\n')
        count++;

// resize lbl (width and height)
lbl.resize(lbl.fontMetrics().width("this is the max-length line in qlabel")
         , lbl.fontMetrics().height() * (count + 1));

注意:如果你改變這個工作QLable字型facesize 只是在高度可擴展的(之前的每一件事設定QLabel frameShape到BOX )。

如果要進行width可縮放內容,則應執行以下步驟:

  • 逐行讀取QLabel (lbl object )文本
  • 計算每條線的長度
  • 選擇最大線長
  • 使用QLabel::fontMetrics().width(QString str)來研究strwidth

我希望這可以幫助您...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM