【发布时间】:2017-05-11 08:08:22
【问题描述】:
我希望 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());
这导致标签对于文本来说太小了。部分文字被隐藏了。
【问题讨论】:
-
如果你想让小部件自动管理空间,你应该使用布局来排列它们。