关键字:QSplitter、QGridLayout
1、界面设计中经常需要左边是树结构,点击树的节点在右边窗口显示内容,左边和右边的分界线是可以左右移动的,这时就需要用到QSplitter控件,在MainWindow.ui设计中,拖入控件QTreeWidget和一个QWidget控件,QWidget控件为右窗口;
2、同时选中这两个控件,点击右键,选择“Lay out”,再选择“Lay out Horizontally in splitter”;
3、右键点击MainWindow,选择“Lay out”,再选择“Lay out in Grid”;
4、在MainWindow.cpp中添加如下代码:
ui->splitter->setStretchFactor(1,7);
5、下面我们来实现右边窗口的四分屏,首先右键点击QWidget控件,选择“Lay out”,再选择“Lay out in Grid”;
6、在工程中添加四个界面类Form1、Form2、Form3、Form4,这时工程就增加了form1.h、form1.cpp,form2.h、form2.cpp,form3.h、form3.cpp,form4.h、form4.cpp;
6、在工程中添加一个类Canvas,继承自QWidget,这时工程就多了一个canvas.h和canvas.cpp,这个类用来实现右边窗口的四分屏;
7、canvas.cpp的代码如下:
#include "canvas.h"
Canvas::Canvas(QWidget *parent) : QWidget(parent)
{
layout = new QGridLayout;
widget1 = new Form1;
widget1->setObjectName("widget1");
widget2 = new Form2;
widget2->setObjectName("widget2");
widget3 = new Form3;
widget3->setObjectName("widget3");
widget4 = new Form4;
widget4->setObjectName("widget4");
vertsplitter1 = new QSplitter;
vertsplitter2 = new QSplitter;
hozrsplitter = new QSplitter;
layoutup &#