我希望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());
这导致标签对于文本而言太小。部分文字被隐藏了。
答案 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);
}