QT之GUI学习笔记(三)——组件布局

来源:互联网 发布:主流云计算平台有哪些 编辑:程序博客网 时间:2024/05/16 08:15

更加具体的内容都在http://blog.51cto.com/zt/20中,自己只是记录自己的学习体会。
本文内容在http://devbean.blog.51cto.com/448512/194616中更加详细。
布局(layout):将组件存放在某一种布局中,当窗口进行调整的时候,组件的大小也随之调整。

1.代码如下:

#include <QApplication>#include <QWidget>#include <QSpinBox>#include <QSlider>#include <QHBoxLayout>int main(int argc, char *argv[]){        QApplication app(argc, argv);        //创建一个Qwidget类型的窗口,窗口标题为Enter you age        QWidget *window = new QWidget;        window->setWindowTitle("Enter your age");        //创建一个QspinBox和一个Qslider,二者的值的范围都是0到130        QSpinBox *spinBox = new QSpinBox;        QSlider *slider = new QSlider(Qt::Horizontal);        spinBox->setRange(0, 130);        slider->setRange(0, 130);        //connect函数将调用信号槽。slider的值和spinBox的值同步改变,二者必须相同。同时,设置spinBox的值为35.        //valueChanged是一个动作  ,这个动作导致setValue动作的发生        QObject::connect(slider, SIGNAL(valueChanged(int)), spinBox, SLOT(setValue(int)));        QObject::connect(spinBox, SIGNAL(valueChanged(int)), slider, SLOT(setValue(int)));        spinBox->setValue(35);        //布局layout,将两个控件slider和spinbox按照水平方向进行布局        QHBoxLayout *layout = new QHBoxLayout;        layout->addWidget(spinBox);        layout->addWidget(slider);        //将layout布局用于window上        window->setLayout(layout);        //显示Qwidget类型的window 组件        window->show();        return app.exec();}

2.程序运行截图
这里写图片描述
二者值变化时,会同时变化,二者的值始终保持相同。
当将窗口拉大时,二者布局为
这里写图片描述
即,控件的大小会自动变化。
3.QT有三种主要的layout
QHBoxLayout:按照水平方向从左至右布局
QVBoxLayout:按照竖直方向从上到下布局
QGridLayout:在一个网格中布局
4.
layout可以使用addWidget添加组件,通过addLayout添加子布局。
因而有各种各样的组合方式。

0 0
原创粉丝点击