分割窗口QSplitter类

概述

分割窗口QSplitter类在应用程序中经常用到,它可以灵活分割窗口的布局,经常用在类似文件资源管理器的窗口设计中
在Qt开发中,QSplitter是比较常用到的,也就是分割窗口。并且窗口分割处也就是QSplitter的handle是可以随意拖动的。这样,每个窗口的大小就可以按照自己的需要进行调整。QSplitter可以容纳其他Widget,具有布局一样的特性,但是又可以动态调整,可以说是动态布局特性,其内部的Widget可以自由伸缩。
QSplitter有两种:垂直和水平。

 enum Orientation {
        Horizontal = 0x1,
        Vertical = 0x2
    };

代码

#include "mainwindow.h"
#include <QApplication>
#include <QFont>
#include <QSplitter>
#include <QTextCodec>
#include <QTextEdit>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QFont font("ZYSong18030",12);  //指定显示字体
    a.setFont(font);

    //主分割窗口
    //新建一个QSplitter类对象,作为主分割窗口,设定此分割窗口为水平分割窗口
    QSplitter *splitterMain=new QSplitter(Qt::Horizontal,0);
    //新建一个QTextEdit对象,并将其插入到主分割窗口中
    QTextEdit *textLeft=new QTextEdit(QObject::tr("Left Widget"),splitterMain);
    textLeft->setAlignment(Qt::AlignCenter);  //设置TextEdit中文字的对齐方式

    //右分割窗口
    QSplitter *splitterRight=new QSplitter(Qt::Vertical,splitterMain);
    //调用setOpaqueResize()方法用于设定分割窗口的分割条在拖拽时是否实时更新
    splitterRight->setOpaqueResize(false);

    QTextEdit *textUp=new QTextEdit(QObject::tr("Top widget"),splitterRight);
    textUp->setAlignment(Qt::AlignCenter);

    QTextEdit *textBottom=new QTextEdit(QObject::tr("Bottom Widget"),splitterRight);
    textBottom->setAlignment(Qt::AlignCenter);

    //调用setStretchFactor()方法用于设定可伸缩控件
    splitterMain->setStretchFactor(1,1);
    splitterMain->setWindowTitle(QObject::tr("Splitter"));
    splitterMain->show();


//    MainWindow w;
//    w.show();

    return a.exec();
}

运行结果
1327401-20180715194828420-47682398.png

1327401-20180715194839438-940027742.png

参考资料
1 https://blog.csdn.net/u011417605/article/details/50914738
2 《Qt5开发及实例(第3版)》

转载于:https://www.cnblogs.com/Manual-Linux/p/9314635.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值