QT小知识点(7) - Qt的界面布局

Qt提供四种布局:

 

VBoxLayout:垂直布局

HBoxLayout:水平布局

GridLayout:二维布局。(网格布局)

FormLayout: 窗体布局


水平布局管理器可以把它所管理的部件以水平的顺序依次排开,例如上图中中间的“Centigrade”和“Fahrenheit”两段文字,就是水平排列的,这个时候就可以用水平布局管理器来实现。

垂直管理器类似,它可以把它所管理的部件以垂直的顺序依次排开,例如上图中右侧的液晶数字和地下的表盘,就形成了垂直排列,这个时候就可以用垂直管理器来实现。

Grid布局管理器可以以网格的形式,将它所管理的部件以一定的矩阵形式排列。比如上图中,所有的部件一起看,其实就是一种矩阵的形式来排列的。

这种布局生成的格局比较单一,这时候需要另外两个填充控件,来生成整行或整列的格式。


注意:使用Spacers控件时,必须要放在layouts中的布局中,否则无法保存。

示例:

1、往界面拖入一个verticalLayout

2、往verticalLayout拖入一个spinBox,然后在拖入一个verticalSpacer


3、拖入其它一些控件


4、选择这个格子布局


将得到以下图形


5、在没有使用填充布局时,控件一般是平分的,有时需要调整一下控件的大小分布


6、完成上述部署后,如果需要随窗口的大小进行变换,可在界面上右键->布局

选择一种布局即可,这时你的界面将随着窗体的大小自动伸缩。

我们再设计一个布局:

整体效果来看,以QGroupBox为单位局部效果较好:


对应代码如下:

1. QGroupBox* rotateGroup = newQGroupBox(tr("Rotate"));   

2. QFormLayout *formLayout = newQFormLayout;   

3. QDoubleSpinBox*  rotateSpin = new QDoubleSpinBox;   

4. rotateSpin->setRange(0.0, 360.0);   

5. formLayout->addRow(newQLabel(tr("Angle: ")), rotateSpin);   

6. rotateGroup->setLayout(formLayout);   

7.    

8. QGroupBox* fillGroup = newQGroupBox(tr("Render Mode"));   

9. QRadioButton* wireButton = newQRadioButton(tr("Wired"));   

10. QRadioButton* fillButton = newQRadioButton(tr("Filled"));   

11. QVBoxLayout *groupBoxLayout = new QVBoxLayout;   

12. groupBoxLayout->addWidget(wireButton);   

13. groupBoxLayout->addWidget(fillButton);   

fillGroup->setLayout(groupBoxLayout); 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值