如何根据文本的大小设置 QLabel 的大小?

How to set QLabel size according to the size of its text?

我希望 QLabel 能够采用文本的大小。 以下不起作用。默认情况下,它使 QLabel 变得相当大。

.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QLabel>

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = 0);
    ~MainWindow();

private:
    QLabel m_QLabel_choose_interval;

};

#endif // MAINWINDOW_H

.cpp

#include "mainwindow.h"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    m_QLabel_choose_interval.setParent (this);
    m_QLabel_choose_interval.setText ("Choose interval:");
    m_QLabel_choose_interval.setFrameStyle (QFrame::Panel | QFrame::Sunken);
    m_QLabel_choose_interval.setAlignment (Qt::AlignCenter);
}

m_QLabel_choose_interval 被声明为 class 成员。


我尝试了 link 中的建议:

    r = m_QLabel_choose_interval.fontMetrics().boundingRect("My text");

    m_QLabel_choose_interval.setText ("Choose interval:");
    m_QLabel_choose_interval.setFrameStyle (QFrame::Panel | QFrame::Sunken);
    m_QLabel_choose_interval.setAlignment (Qt::AlignCenter);
    m_QLabel_choose_interval.setFixedWidth (r.width());
    m_QLabel_choose_interval.setFixedHeight (r.height());

这导致标签对于文本来说太小了。部分文字被隐藏。

以下对我有用:

MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent)   
{  
     m_QLabel_choose_interval.setParent (this);  
     m_QLabel_choose_interval.setText ("Choose interval:");  

     QFont        l_QFont_choose_interval ("times", 24);  
     QFontMetrics l_QFontMetrics_choose_interval (l_QFont_choose_interval);

     m_QLabel_choose_interval.setFont (l_QFont_choose_interval);

     int pixelsWide = l_QFontMetrics_choose_interval.width(m_QLabel_choose_interval.text ());  
     int pixelsHigh = l_QFontMetrics_choose_interval.height();

     m_QLabel_choose_interval.setFrameStyle (QFrame::Panel | QFrame::Sunken);  
     m_QLabel_choose_interval.setAlignment (Qt::AlignCenter);  

     m_QLabel_choose_interval.setFixedWidth (pixelsWide);  
     m_QLabel_choose_interval.setFixedHeight (pixelsHigh);   
}

http://doc.qt.io/qt-5/qfontmetrics.html