ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

QT学习(三)

2021-10-13 23:05:45  阅读:224  来源: 互联网

标签:管理器 QT QSpinBox 布局 spinbox 学习 window layout


GUI-布局管理器

Qt 提供两种组件定位机制:绝对定位和布局定位。

(1)绝对定位是一种最原始的定位方法:给出这个组件的坐标和长宽值。但如果用户改变了窗口大小,比如点击最大化按钮或者使用鼠标拖动窗口边缘,采用绝对定位的组件是不会有任何响应的。
(2)布局定位,把组件放入某一种布局,布局由专门的布局管理器进行管理。当需要调整大小或者位置的时候,Qt 使用对应的布局管理器进行调整。

Qt 提供了几种布局管理器供我们选择:

  • QHBoxLayout:按照水平方向从左到右布局;
  • QVBoxLayout:按照竖直方向从上到下布局;
  • QGridLayout:在一个网格中进行布局,类似于 HTML 的 table;
  • QFormLayout:按照表格布局,每一行前面是一段文本,文本后面跟随一个组件(通常是输入框),类似 HTML 的 form;
  • QStackedLayout:层叠的布局,允许我们将几个组件按照 Z 轴方向堆叠,可以形成向导那种一页一页的效果。

简用代码:

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QWidget window;
    window.setWindowTitle("输入年龄");

    QSpinBox *spinbox=new QSpinBox(&window);
    QSlider *slider=new QSlider(Qt::Horizontal,&window);
    spinbox->setRange(0,130);
    slider->setRange(0,130);

    QObject::connect(slider, &QSlider::valueChanged, spinbox, &QSpinBox::setValue);
    void (QSpinBox:: *spinBoxSignal)(int) = &QSpinBox::valueChanged;
    QObject::connect(spinbox, spinBoxSignal, slider, &QSlider::setValue);
    spinbox->setValue(35);

    QHBoxLayout *layout = new QHBoxLayout;
     layout->addWidget(spinbox);
     layout->addWidget(slider);
     window.setLayout(layout);

     window.show();
     return a.exec();

}

运行结果:

学习来自:

Qt 学习之路 2(11):布局管理器 - DevBean Tech Worldhttps://www.devbean.net/2012/09/qt-study-road-2-layout/

 

标签:管理器,QT,QSpinBox,布局,spinbox,学习,window,layout
来源: https://blog.csdn.net/hihushine/article/details/120753473

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有