版权声明:本文为博主原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_41488943/article/details/96431379
使用Qplitter实现页面的三布局分布
1.新建一个无ui界面的工程,其基类为mainwindow
2.代码实现
mainwindow.h和main.cpp无改动。默认
mainwindow.cpp
#include "mainwindow.h"
#include
#include
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
//创建主分割窗口,设置为水平分割窗口,使用左右分割的方式
QSplitter * mainsplitter = new QSplitter(Qt::Horizontal);
//创建一个qtextedit窗口控件,其父控件为申明的miansplitter
QTextEdit * leftedit = new QTextEdit(QObject::tr("左窗口"),mainsplitter);
//设置的qtextedit中的显示字符方式为居中对齐
leftedit->setAlignment(Qt::AlignCenter);
//创建右侧分割窗口,使用上下(垂直)分割的方式,其父控件为声明为miansplitter
QSplitter * rightedit = new QSplitter(Qt::Vertical,mainsplitter);
//设置拖动分割条,只显示灰线,拖动到位后再显示分割条
//rightedit->setOpaqueResize(false); //添不添加一样的结果
//设置右侧分割的上下两个窗口,其父控件为rightedit
QTextEdit * upedit = new QTextEdit(QObject::tr("上窗口"),rightedit);
upedit->setAlignment(Qt::AlignCenter);
QTextEdit * downedit = new QTextEdit(QObject::tr("下窗口"),rightedit);
downedit->setAlignment(Qt::AlignCenter);
//设置有部分分割窗口为可伸缩控件
//mainsplitter->setStretchFactor(1,1);
mainsplitter->setWindowTitle(QObject::tr("分割窗口"));
//将主分割设为中央控件
setCentralWidget(mainsplitter);
mainsplitter->show();
}
MainWindow::~MainWindow()
{
}
3.效果展示
用代码实现的分裂器较之ui界面的更灵活。可随处拖拽