Qt---布局,设置控件边距,拉伸因子

控件所占空间

QGridLayout *LeftLayout =new QGridLayout(this);
LeftLayout->addWidget(label1, 0, 0);       //label1在第1行第1列
LeftLayout->addWidget(label2, 0, 1);       //label2在第1行第2列
LeftLayout->addWidget(btn1, 1, 0, 1, 2);   //btn1在第2行第1列,占用的列数为1,占用的行数为2
LeftLayout->setColumnStretch(0, 1);   //第1列占表格布局的1/4
LeftLayout->setColumnStretch(1, 3);   //第2列占表格布局的3/4

这里写图片描述

QHBoxLayout *RightLayout =new QHBoxLayout(this);
RightLayout->setMargin(10);  //控件与窗体左右边距
RightLayout->setSpacing(10); //控件之间的边距
RightLayout->addWidget(label3);
RightLayout->addWidget(label4);
RightLayout->setStretchFactor(label3, 1);  //label3占水平布局的1/4
RightLayout->setStretchFactor(label4, 3);  //label4占水平布局的3/4

这里写图片描述

如果将QHBoxLayout改为QVBoxLayout,结果如下:
这里写图片描述

控件位置

QVBoxLayout *ButtomLayout = new QVBoxLayout(this);  
ButtomLayout->addStretch(1);    //在label5前面的空白占总空白的1/6
ButtomLayout->addWidget(label5);    
ButtomLayout->addStretch(3);   //在label6前面的空白占总空白的3/6
ButtomLayout->addWidget(label6); 
ButtomLayout->addStretch(2);   //在label6后面的空白占总空白的2/6

这里写图片描述

如果将QVBoxLayout改为QHBoxLayout,结果如下:
这里写图片描述

总体布局

QGridLayout *mainLayout =new QGridLayout(this);
mainLayout->setMargin(15);
mainLayout->setSpacing(10);
mainLayout->addLayout(LeftLayout,0, 0);
mainLayout->addLayout(RightLayout,0, 1);
mainLayout->addLayout(ButtomLayout, 1, 0, 1, 2);
  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值