QT-纯代码控件-QSplitter(分裂器)

it2022-05-05  127

使用Qplitter实现页面的三布局分布

1.新建一个无ui界面的工程,其基类为mainwindow

2.代码实现

mainwindow.h和main.cpp无改动。默认

mainwindow.cpp

#include "mainwindow.h" #include <QSplitter> #include <QTextEdit> 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界面的更灵活。可随处拖拽


最新回复(0)