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

时间:2017-05-11 08:08:23

标签: c++ qt qlabel

我希望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被声明为类成员。

我尝试了此链接中的建议:Dynamic text size QLabel

    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());

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

1 个答案:

答案 0 :(得分:1)

以下为我工作:

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

enter image description here