版權聲明:本文為博主原創文章,遵循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界面的更靈活。可隨處拖拽