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

    xiaoxiao2021-03-25  59

    更加具体的内容都在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添加子布局。 因而有各种各样的组合方式。

    转载请注明原文地址: https://ju.6miu.com/read-33260.html

    最新回复(0)