适合QLABEL高度,而无需WordWrap

Fit QLabel height without WordWrap

本文关键字:WordWrap QLABEL 高度 适合      更新时间:2023-10-16

我需要做一个手动单词包装,因为来自QT的本机WordWrap在错误的位置分裂。我已经完成了文本的包装,但是内容并未显示所有内容。Qlabel像图像一样切割顶部和底部:

我可以将Qlabel安装到没有WordWrap的文本的高度上吗?

我将其写入height可伸缩:

QLabel lbl;
int count = 0;
QString str = "";
// set lbl text 
lbl.setText("hfdsfncsadnfscdajkjkjkjhhkdkcan925");
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)width中调查str的大小

我希望这可以帮助您...

QLabel应自动调整到所需的高度,如果将其放置在布局中,是否启用了WordWrap,请参见DOC:http://doc.qt.io/qt-5/layout.html