在布局编辑环境里:
sizePolicy 影响控件在布局上的大小。
layout 的属性 如:如margin 设置控件在布局上边距。 有时候需要设置
下面是一个 代码布局的方式
#include "logindialog.h" #include "ui_logindialog.h" #include <QHBoxLayout> LoginDialog::LoginDialog(QWidget *parent) : QDialog(parent), ui(new Ui::LoginDialog) { ui->setupUi(this); QHBoxLayout * HLayout = new QHBoxLayout(this); HLayout->addStretch(2); //添加占位符 占的比例是2 HLayout->addWidget(ui->pushButton_2); HLayout->addStretch(1); HLayout->addWidget(ui->pushButton_3); HLayout->addStretch(1); HLayout->addWidget(ui->pushButton_4); HLayout->addStretch(2); HLayout->setStretchFactor(ui->pushButton_2,1); //设置控件的比例 HLayout->setStretchFactor(ui->pushButton_3,3); HLayout->setStretchFactor(ui->pushButton_4,1); ui->widget->setLayout(HLayout); //将三个按钮的控件布局到 widget 上 QGridLayout * overLayout = new QGridLayout(this); overLayout->addWidget(ui->widget); setLayout(overLayout); // 将整个对画框进行布局 } LoginDialog::~LoginDialog() { delete ui; }
效果如下图
使用布局后 调整控件大小方法:
调整属性里面的:
minimumSize 最小大小,分height和width
maximumSize 最大大小,分height和width
锁定按钮的变化范围
垂直布局 分裂器垂直布局 水平类似
选中三个按钮 第一组我使用了垂直布局 调整布局框大小 按钮只有水平跟随变化,不能调整垂直长度。
第二组 使用分裂器垂直布局 水平垂直都可以跟随变化。