Qt分割窗口QSplitter类

来源:互联网 发布:linux关闭oracle服务 编辑:程序博客网 时间:2024/05/20 05:29

灵活分割窗口的布局,常用在类似文件资源管理器的窗口设计中。

效果图:
这里写图片描述

main.cpp

#include "qsplitter.h"#include <QApplication>int main(int argc, char *argv[]){    QApplication a(argc, argv);    QSplitter w;    w.show();    return a.exec();}

widget.cpp

#include "widget.h"#include "ui_widget.h"#include <QSplitter>#include <QTextEdit>Widget::Widget(QWidget *parent) :    QWidget(parent),    ui(new Ui::Widget){    ui->setupUi(this);    QSplitter *splitterMain = new QSplitter(Qt::Horizontal, 0);                       // 1横向    QTextEdit *textLeft = new QTextEdit(QObject::tr("Left Widget"), splitterMain);    textLeft->setAlignment(Qt::AlignCenter);    QSplitter *splitterThree = new QSplitter(Qt::Vertical, splitterMain);             // 2纵向    QTextEdit *textThree = new QTextEdit(QObject::tr("Three Widget"), splitterThree);    textThree->setAlignment(Qt::AlignCenter);    QTextEdit *textnnn = new QTextEdit(QObject::tr("nnn Widget"), splitterThree);    textnnn->setAlignment(Qt::AlignCenter);    QSplitter *splitterRight = new QSplitter(Qt::Vertical, splitterMain);             // 3横向    splitterRight->setOpaqueResize(false);  //分割窗口的分隔条在拖曳时是否为实时显示    QTextEdit *textUp = new QTextEdit(QObject::tr("Top Widget"), splitterRight);    textUp->setAlignment(Qt::AlignCenter);    QTextEdit *textButton = new QTextEdit(QObject::tr("Button Widget"), splitterRight);    textButton->setAlignment(Qt::AlignCenter);    splitterMain->setStretchFactor(1, 1);  //控件序号为1的控件(第一个是0)设置为可伸缩控件(当整个对话框宽度发生改变时,1会随着变化)    splitterMain->setWindowTitle(QObject::tr("splitter"));    splitterMain->show();}Widget::~Widget(){    delete ui;}
0 0