【问题标题】:Scaling QLabel to accommodate the contained text and nothing more缩放 QLabel 以适应包含的文本,仅此而已
【发布时间】:2012-03-02 18:08:24
【问题描述】:

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

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

【问题讨论】:

    标签: qt qlabel


    【解决方案1】:

    是的,您可以通过QLabelQFontMetrics 找出文本的宽度。例如:

    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.
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-06
      • 2011-11-07
      • 1970-01-01
      • 2011-05-09
      • 1970-01-01
      相关资源
      最近更新 更多