常用的布局方法

1. 水平布局类 QHBoxLayout

2. 垂直布局类 QVBoxLayout

3. 网格布局类 QGridLayout

QHBoxLayout

对象横向排列开

QVBoxLayout 对象纵向排列开

向上伸缩

QWidget *widget = new QWidget();
QPushButton *button_all = new QPushButton(tr("总情况"));
QPushButton *button_buy = new QPushButton(tr("入库"));
QVBoxLayout *layout = new QVBoxLayout();
layout->addWidget(button_all);
layout->addWidget(button_buy);
layout->addStretch(); //伸缩空间
layout->setMargin(10); //页边距
layout->setSpacing(10); //控件间隔
widget->setLayout(layout);

中间伸缩

layout->addWidget(button_all);
layout->addWidget(button_sale);
layout->addStretch(); //伸缩空间
layout->addWidget(button_record);

两边伸缩

layout->addStretch(); //伸缩空间
layout->addWidget(button_all);
layout->addWidget(button_sale);
layout->addWidget(button_record);
layout->addStretch(); //伸缩空间

QGridLayout

将控件放置到网格中布局,它本身会从父窗口或父布局中占据尽可能多的界面空间,然后把自己的空间划分为行和列,再把每个控件塞到设置好的一个或多个单元格中。通常情况下 QGridLayout不需要自己添加空白条 QSpacerItem,因为其他功能控件把各自的单元格占据之后,剩下没控件占据的单元格自然就是空的,空的格子默认里面什么都没有,也没有空白条

QWidget *widget = new QWidget();
QPushButton *button_all = new QPushButton(tr("总情况"));
QPushButton *button_buy = new QPushButton(tr("入库"));
QGridLayout*layout = new QGridLayout();
layout->addWidget(button_all, 0, 0);
layout->addWidget(button_buy, 1, 2);
widget->setLayout(layout);

拉伸函数

QGridLayout::setColumnStretch(列码, 比例值);
QGridLayout::setRowStretch(行码, 比例值);

水平 1:2 拉伸

layout->addWidget(button_all, 0, 0);
layout->addWidget(button_buy, 0, 1);
layout->setColumnStretch(0, 1);
layout->setColumnStretch(1, 2);

最新文章

  1. 【原创】JMeter学习(三十七)Jmeter录制手机app脚本
  2. 【leetcode】Climbing Stairs (easy)
  3. 管理系统的前端解决方案:Pagurian V1.3发布
  4. CodeForces Round 200 Div2
  5. Create a Bootable MicroSD Card
  6. MapReduce多表连接
  7. mysql 查看死锁和去除死锁
  8. [BZOJ 1816] [Cqoi2010] 扑克牌 【二分答案】
  9. uva133 The Dole Queue ( 约瑟夫环的模拟)
  10. GraphLab介绍[转]
  11. Python学习笔记3
  12. [JCIP笔记] (一)多线程的起源
  13. ucloud mysql
  14. 数据结构C语言版-队列
  15. day5模块学习--re正则模块
  16. linux 网络配置 (配置/etc/sysconfig/network-scripts/ifcfg-ethx)
  17. cat 查看文件命令
  18. HDU3377 Plan
  19. vi中跳到文件的第一行和最后一行
  20. docker 运行容器,安装Nginx

热门文章

  1. Spring的@ExceptionHandler和@ControllerAdvice统一处理异常
  2. bind智能DNS + bindUI管理系统(postgresql + bind dlz)
  3. BIO
  4. vmware安装gho系统(win10上安装虚拟机然后在vmware上安装win7)
  5. Python中利用原始套接字进行网络编程的示例
  6. delphi中我用定时器每隔一段时间执行操作
  7. TroubleShooting经验总结
  8. sklearn简单线性回归
  9. CSS3 column 分栏
  10. 开发环境下的 Kubernetes 容器网络演进之路