我需要做一个手动自动换行,因为来自Qt的原生wordWrap在错误的地方分裂。我已经完成了对我的文本的包装,但内容没有显示所有内容。 QLabel像图像一样切割顶部和底部:
我可以在没有wordWrap的情况下将Qlabel放到其中文本的高度吗?
答案 0 :(得分:0)
QLabel
如果将其放置在布局中,应自动调整到所需的高度,如果启用了wordWrap并不重要,请参阅文档:
http://doc.qt.io/qt-5/layout.html
答案 1 :(得分:0)
我将其写为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
字体face
或size
,这项工作就有效!只是在高度上可扩展(在每件事物之前将QLabel
frameShape设置为BOX
)。
如果您想要width
可扩展内容,则应执行以下步骤:
QLabel
(lbl object
)文字
QLabel::fontMetrics().width(QString str)
str
调查width
尺寸
我希望这可以帮助你...