从上到下依次为
垂直布局(Vertical Layout )头文件 (QVBoxLayout)
将控件垂直分布的方式布局,具体实现为以下步骤:
1、new出一个垂直布局管理器;
2、将需要布局的控件,放入垂直布局管理器;
3、将垂直布局管理器的指针传入基类;(setLayout)
代码如下:
//ui->setupUi(this);
tool=new QToolButton;
tool->setText("工具按钮");
pt = new QPushButton("普通按钮");
RB1 = new QRadioButton("单选按钮1");
RB2 = new QRadioButton("单选按钮2");
CB1 = new QCheckBox("多选按钮2");
CB2 = new QCheckBox("多选按钮1");
CLB = new QCommandLinkButton("转到");
CLB->setDescription("www.baidu.com");
QVBoxLayout *vbox = new QVBoxLayout;
vbox->addWidget(tool);
vbox->addWidget(pt);
vbox->addWidget(CB1);
vbox->addWidget(CB2);
vbox->addWidget(RB1);
vbox->addWidget(RB2);
vbox->addWidget(CLB);
setLayout(vbox);
(按钮类功能实现详见(4条消息) QT基本空间详解及实例1(按钮类)_羊百万~的博客-CSDN博客)
水平布局(Horizontal Layout)头文件 (QHBoxLayout)
将控件水平分布的方式布局,具体实现为以下步骤(类似于垂直布局):
1、new出一个水平布局管理器;
2、将需要布局的控件,放入水平布局管理器;
3、将水平布局管理器的指针传入基类;(setLayout)
代码如下:
tool=new QToolButton;
tool->setText("工具按钮");
pt = new QPushButton("普通按钮");
RB1 = new QRadioButton("单选按钮1");
RB2 = new QRadioButton("单选按钮2");
CB1 = new QCheckBox("多选按钮2");
CB2 = new QCheckBox("多选按钮1");
CLB = new QCommandLinkButton("转到");
CLB->setDescription("www.baidu.com");
QHBoxLayout *hbox = new QHBoxLayout;
hbox->addWidget(tool);
hbox->addWidget(pt);
hbox->addWidget(CB1);
hbox->addWidget(CB2);
hbox->addWidget(RB1);
hbox->addWidget(RB2);
hbox->addWidget(CLB);
setLayout(hbox);
网格布局(Grid Layout)头文件 (QHBoxLayout)
将控件网格分布的方式布局,具体实现为以下步骤:
1、new出一个网格布局管理器;
2、将需要布局的控件,设置横、纵坐标、长度、宽度后,放入网格布局管理器中;
3、将网格布局管理器的指针传入基类;(setLayout)
代码如下:
QGridLayout *vbox = new QGridLayout;
vbox -> addWidget(le,1,1,1,2);
vbox -> addWidget(bt,0,0);
setLayout(vbox);
可以得到如下:
详解:addWidget函数(第二、三参数必要,第三、四参数默认为1)
le:具体空间按钮的对象;
0(从左往右):网格布局的横坐标为1;
0:网格布局的纵坐标为1;
1(默认参数为1):控件高度为1;
2(默认参数为1):控件长度为2;
注意:如果在不输入第三四个参数的情况下,控件大小默认为1*1大小(如bt控件传参);
***混合布局 头文件 (QHBoxLayout)(QVBoxLayout)
使用水平布局和垂直布局共同布局的布局方式被称为混合布局,具体实现步骤:
1、new出一个水平布局管理器和一个垂直布局管理器;
2、首先将需要水平布局控件绑定至水平布局管理器;
3、将水平布局管理器的指针传回垂直布局管理器;(setLayout)
4、将需要垂直布局控件绑定至垂直布局管理器;
3、将垂直布局管理器的指针传入基类;(setLayout)
代码实现如下:
QVBoxLayout *vbox = new QVBoxLayout;
QHBoxLayout *hbox = new QHBoxLayout;
hbox -> addWidget(bt1);
hbox -> addWidget(bt);
vbox -> addWidget(le);
vbox -> addLayout(hbox);
this -> setLayout(vbox);
可以得到如下:
后续有遗漏再补充~,走过路过点个赞,小徐小徐,一条咸鱼。