3

我将 QLabel 子类化并将其插入到 QVBoxLayout 中,但我遇到了大小问题。以下屏幕截图是我的应用程序当前的外观:

在此处输入图像描述

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

4

1 回答 1

8

是的,您可以QFontMetrics通过QLabel. 例如:

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.
于 2012-02-10T09:10:32.463 回答