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

使用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界面的更灵活。可随处拖拽

发布了43 篇原创文章 · 获赞 7 · 访问量 9051

猜你喜欢

转载自blog.csdn.net/qq_41488943/article/details/96431379