缩放QLabel以容纳所包含的文本,仅此而已

3 qt qlabel

我正在继承QLabel并将其插入到QVBoxLayout中,并且我遇到了大小问题.以下屏幕截图是我的应用程序当前的外观:

在此输入图像描述

顶部的黄色小部件是我的QLabel,布局是默认布局.我希望我的标签缩小以适应文本而不用手动设置它setMinimumHeight(),但是这不允许我使用比标签宽度更长的字符串.我检查了文档QString(这是我传递给标签的构造函数),我找不到提取文本大小的方法.有没有什么办法可以动态改变我的标签大小以适应文本,没有多余的空间?

Neo*_*eox 8

是的,你可以找出文本的通过宽度QFontMetricsQLabel.例如:

QLabel *label = new QLabel("Text");
int w = label->fontMetrics().width(label->text());
qDebug() << Q_FUNC_INFO << w;
//in my case this results in 24px, so 6px per character.
Run Code Online (Sandbox Code Playgroud)