qt学习第三课:窗口布局
来源:互联网 发布:你好旧时光 知乎 编辑:程序博客网 时间:2024/06/02 18:40
在qt中不用具体去设置窗口中控件的位置,这点是跟MFC很不同的,在QT中是通过布局来实现对窗口位置进行控制的。Qt中主要有三个布局管理器,如下:
QHBoxLayout: 在水平方向进行布局窗口控件,从左到右
QVBoxLayout:在竖直方向进行窗口布局,从上到下
QGridLayout:把各个窗口尽享网络布局。
下面就分别来进行介绍:
#include <QApplication>#include<QWidget>#include<QSlider>#include<QSpinBox>#include<QHBoxLayout>int main(int argc, char *argv[]){ QApplication a(argc, argv); // MainWindow w; // w.show();//窗口布局学习 QWidget *window = new QWidget; window->setWindowTitle("Enter your Age"); QSpinBox * spinbox = new QSpinBox; QSlider * slider = new QSlider(Qt::Horizontal); spinbox->setRange(0 , 130); slider->setRange(0,130); QObject::connect(spinbox , SIGNAL(valueChanged(int)) , slider ,SLOT(setValue(int)) ); QObject::connect(slider ,SIGNAL(valueChanged(int)) , spinbox , SLOT(setValue(int)) ); spinbox->setValue(35); QHBoxLayout *layout = new QHBoxLayout; layout->addWidget(spinbox); layout->addWidget(slider); window->setLayout(layout); window->show(); return a.exec();}
在上面的代码中,首先创建了一个QWidget类型的窗口,用来作为程序的主窗口。
然后再窗口中创建了一个QSpinBox和一个QSlider对象,并为他们关联了信号和槽。
然后为spinbox设置了一个初始值。
最后引入了一个QHBoxLayout布局(横向布局),让两个控件并列显示在窗口中。
具体效果如下:
这个就是横向的布局效果。
下面来看下纵向的布局效果:
网格的设置是首先初始化一个网格布局对象,然后具体在一个a[n][m]的对象中布局就可以了,比如一个放在a[0][0],
然后把第二个放在a[0][1]的位置,他的效果就跟横向布局一样了。同理纵向布局也可以这样实现。
0 0
- qt学习第三课:窗口布局
- Qt笔记·第三篇窗口布局
- QT 学习笔记 窗口控件的布局
- Qt窗口布局
- Qt窗口几何布局
- Qt Creator窗口布局
- Qt窗口布局
- QT学习之三---定义窗口并实现简单布局
- Qt学习笔记——窗口的布局
- qt界面主窗口布局
- Qt 布局管理 - 停靠窗口
- qt界面主窗口布局
- Qt 布局管理 - 停靠窗口
- Qt Creator设置窗口布局
- qt窗口部件的布局
- QT -- 窗口部件的布局
- QT窗口布局-停靠窗口类QDockWidget
- qt学习第四课:子类化窗口
- 只会左键断点?是时候试试这样那样断点了
- 绘制位图的两种方式
- 2524 矩形A + B
- OC内存管理
- Servlet实现用户数的统计
- qt学习第三课:窗口布局
- 了解Objective-C中Selector基本概念和操作
- Java NIO - 简介
- 机试算法讲解:第36题 Floyd
- 学习AngularJS的一些资料及网站
- PreparedStatement 预编译
- 敏捷开发Scrum
- 机试算法讲解: 第37题 Dijkstra
- ubuntu 如何创建新用户