2017-05-11 213 views
0

我希望QLabel獲取文本的大小。 以下不起作用。它使默認情況下QLabel相當大。 .H如何根據文本大小設置QLabel大小?

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

這導致標籤是文本太小。部分文字被隱藏。

+0

如果你想使小工具會自動管理thair空間,你應該使用的佈局排列。 –

回答

0

繼爲我工作:

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

+0

這似乎有點尷尬,因爲它涉及到很多代碼。我認爲正確的解決方案是使用佈局。 –

相關問題