Qt 界面上控件自适应窗体大小 - 随窗体缩放
引言
添加布局,设置控件的minimumSize
、maximumSize
和sizePolicy
可以使其跟随窗体进行自适应缩放 - 如上图所示。
一、在Qt Designer上设置
在代码中设置效果一致,可参考最后Qt自动生成的布局源码
-
- 加入控件,设置窗体为栅格布局:
- 加入控件,设置窗体为栅格布局:
-
- 默认
minimumSize
、maximumSize
没有限制,但是不同控件的sizePolicy
属性会不一样,比如lineEdit默认水平可扩展 (Expanding
),垂直方向不变(Fixed
). 想达到上图效果,所有控件的sizePolicy
策略设置为Preferred
即可
- 默认
-
- 自动生成的UI源码
#ifndef UI_WIDGET_H
#define UI_WIDGET_H
#include <QtCore/QVariant>
#include <QtWidgets/QApplication>
#include <QtWidgets/QComboBox>
#include <QtWidgets/QGridLayout>
#include <QtWidgets/QLabel>
#include <QtWidgets/QLineEdit>
#include <QtWidgets/QPushButton>
#include <QtWidgets/QWidget>
QT_BEGIN_NAMESPACE
class Ui_Widget
{
public:
QGridLayout *gridLayout;
QPushButton *pushButton;
QComboBox *comboBox;
QLabel *label;
QLineEdit *lineEdit;
void setupUi(QWidget *Widget)
{
if (Widget->objectName().isEmpty())
Widget->setObjectName(QString::fromUtf8("Widget"));