在.ui上添加一个treeView,一个Label和一个TableView
在构造函进行设置实现部件的左右滑动
// MainWindow默认有个布局,不能直接布局,需新建一个Widget设置为CentralWidget
QWidget* widget = new QWidget;
setCentralWidget(widget);
//设置水平布局
QHBoxLayout* layoutH = new QHBoxLayout(this);
//创建分裂布局器
QSplitter* splitterH = new QSplitter(Qt::Horizontal, this);
QSplitter* splitterV = new QSplitter(Qt::Vertical, splitterH); //其父件为splitterH
splitterV->addWidget(ui->label);
splitterV->addWidget(ui->tableView);
splitterH->addWidget(ui->treeView);
splitterH->addWidget(splitterV);
//设置分裂器的伸缩
// 函数原型:setStretchFactor(int index, int stretch)
//第一个参数index表示部件下标,第二个参数stretch表示伸缩的大小
//以我的理解:若是想让初始界面的左边的树的大小小一点,右边的垂直布局大一点,就把右边的部件(下标为1)的stretch设置为1
splitterH->setStretchFactor(1, 1);
//若是想初始界面的label大一点,treeView小一点,就将label部件(下标为0)的stretch设置为1
splitterV->setStretchFactor(0, 1);
//布局添加分裂器
layoutH->addWidget(splitterH);
//设置整体布局
widget->setLayout(layoutH);