QT学习记录之控件布局

作者:朱金灿

来源: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编程中控件布局方便多了!




posted on 2014-04-16 13:37  岚之山  阅读(212)  评论(0编辑  收藏  举报

导航