作者:朱金灿
来源:
想到控件布局就会想到Windows编程中要实现对话框上的控件的合理布局是一件多么艰难的事情。对此QT提出了一个很方便的解决方案。
Qt有三个主要的布局管理器:
QHBoxLayout:水平排列控件。
QVBoxLayout:垂直排列控件。
QGridLayout: 按矩阵方式排列控件。
下面以一个简单的例子说明QHBoxLayout的用法:
#include "stdafx.h"#includeint main(int argc, char *argv[]){ QApplication a(argc, argv); QWidget* pWin = new QWidget; pWin->setWindowTitle("Enter Your age"); QSpinBox* pSpinBox = new QSpinBox(); pSpinBox->setRange(0,130); pSpinBox->setValue(35); QSlider* pSlider = new QSlider(Qt::Horizontal); pSlider->setRange(0,130); QHBoxLayout* pLayout = new QHBoxLayout; pLayout->addWidget(pSpinBox); pLayout->addWidget(pSlider); pWin->setLayout(pLayout); pWin->show(); return a.exec();}
效果图如下:
我们把QHBoxLayout* pLayout = new QHBoxLayout;替换为QVBoxLayout* pLayout = new QVBoxLayout;看看效果怎么样:
可以看到QHBoxLayout实际上保证每个控件按照统一的高度横向排列,而QVBoxLayout是保证每个控件按照统一的宽度纵向排列。这样是不是比Windows编程中控件布局方便多了!