作者:朱金灿
来源:http://blog.csdn.net/clever101
想到控件布局就会想到Windows编程中要实现对话框上的控件的合理布局是一件多么艰难的事情。对此QT提出了一个很方便的解决方案。
Qt有三个主要的布局管理器:
QHBoxLayout:水平排列控件。
QVBoxLayout:垂直排列控件。
QGridLayout: 按矩阵方式排列控件。
下面以一个简单的例子说明QHBoxLayout的用法:
#include "stdafx.h"
#include <QtGui/QApplication>
int 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编程中控件布局方便多了!