Qt布局器常用方法(QHBoxLayout、QVBoxLayout、QGridLayout)

Qt布局器

  • 常用布局器有水平布局、垂直布局、网格布局、表格布局
  • 布局原则:先局部,后整体

QHBoxLayout 水平布局

QHBoxLayout* m_pHLayout = new QHBoxLayout(this);
QPushButton* m_pBtn1 = new QPushButton("1", this);
QPushButton* m_pBtn2 = new QPushButton("2", this);
QPushButton* m_pBtn3 = new QPushButton("3", this);
m_pHLayout->addWidget(m_pBtn1);
m_pHLayout->addWidget(m_pBtn2);
m_pHLayout->addWidget(m_pBtn3);

运行效果:
在这里插入图片描述

QVBoxLayout 垂直布局

QVBoxLayout* m_pVLayout = new QVBoxLayout(this);
QPushButton* m_pBtn1 = new QPushButton("1", this);
QPushButton* m_pBtn2 = new QPushButton("2", this);
QPushButton* m_pBtn3 = new QPushButton("3", this);
m_pVLayout->addWidget(m_pBtn1);
m_pVLayout->addWidget(m_pBtn2);
m_pVLayout->addWidget(m_pBtn3);

运行示例:
在这里插入图片描述

QGridLayout 网格布局

QGridLayout* m_pGridLayout = new QGridLayout(this);
QPushButton* m_pBtn1 = new QPushButton("1", this);
QPushButton* m_pBtn2 = new QPushButton("2", this);
QPushButton* m_pBtn3 = new QPushButton("3", this);
QPushButton* m_pBtn4 = new QPushButton("4", this);
QPushButton* m_pBtn5 = new QPushButton("5", this);
m_pGridLayout->addWidget(m_pBtn1, 0, 0);
m_pGridLayout->addWidget(m_pBtn2, 0, 1);
m_pGridLayout->addWidget(m_pBtn3, 0, 2);
m_pGridLayout->addWidget(m_pBtn4, 1, 0);
m_pGridLayout->addWidget(m_pBtn5, 2, 0);

在这里插入图片描述

QFormLayout

主要用于组件标签对应的布局

使用示例:

m_pFormLayout = new QFormLayout(this);
QLineEdit* m_pUserLineEdit = new QLineEdit(this);
QLineEdit* m_pPassLineEdit = new QLineEdit(this);

m_pFormLayout->addRow("username:", m_pUserLineEdit);
m_pFormLayout->addRow("password:", m_pPassLineEdit);

运行效果:
在这里插入图片描述

常用方法

设置对齐方式

layout->setAlignment(Qt::AlignTop);
Qt::AlignLeft    //水平方向靠左。
Qt::AlignRight    //水平方向靠右。
Qt::AlignHCenter    //水平方向居中。
Qt::AlignTop        //垂直方向靠上。

效果对比:
在这里插入图片描述
在这里插入图片描述

多个布局器结合使用

示例:

QVBoxLayout* m_pVLayout = new QVBoxLayout(this);

QFormLayout *m_pFormLayout = new QFormLayout(this);
QLineEdit* m_pUserLineEdit = new QLineEdit(this);
QLineEdit* m_pPassLineEdit = new QLineEdit(this);
m_pFormLayout->addRow("username:", m_pUserLineEdit);
m_pFormLayout->addRow("password:", m_pPassLineEdit);

QGridLayout* m_pGridLayout = new QGridLayout(this);
QPushButton* m_pBtn1 = new QPushButton("1", this);
QPushButton* m_pBtn2 = new QPushButton("2", this);
QPushButton* m_pBtn3 = new QPushButton("3", this);
QPushButton* m_pBtn4 = new QPushButton("4", this);
QPushButton* m_pBtn5 = new QPushButton("5", this);
m_pGridLayout->addWidget(m_pBtn1, 0, 0);
m_pGridLayout->addWidget(m_pBtn2, 0, 1);
m_pGridLayout->addWidget(m_pBtn3, 0, 2);
m_pGridLayout->addWidget(m_pBtn4, 1, 0);
m_pGridLayout->addWidget(m_pBtn5, 2, 0); //加入界面

QLabel* m_pLabel = new QLabel("QFormLayout:",this);
m_pVLayout->addWidget(m_pLabel);
m_pVLayout->addLayout(m_pFormLayout); //加入布局

QLabel* m_pLabel1 = new QLabel("QGridLayout:", this);
m_pVLayout->addWidget(m_pLabel1);
m_pVLayout->addLayout(m_pGridLayout);

this->setLayout(m_pVLayout);//设置当前界面使用的布局

效果:
在这里插入图片描述

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值