第三章 Qt5布局管理——3.1分割窗口QSplitter类

        分割窗口QSplitter类在应用程序中经常用到,它可以灵活分割窗口的布局,经常用到在类似文件资源管理器的窗口设计中。

        例子:一个十分简单的分割窗口功能,整个窗口由三个子窗口组成,各个窗口之间可以大小随意拖拽改变,程序运行结果如下:

#include "mainwindow.h"
#include <QApplication>
#include <QSplitter>    //QSplitter 类实现了一个 splitter widget。
#include <QTextCodec>   //QTextCodec 类提供文本编码之间的转换。
#include <QTextEdit>    //QTextEdit 类提供了一个小部件,用于编辑和显示纯文本和富文本。

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    //MainWindow w;
    //w.show();
/* 指定显示字体 */
    QFont font("宋体",12);//选定字体字号
    a.setFont(font);//设置字体
/*
 * 主分割窗口
 * 1.建立主窗口
 * 2.在主窗口插入textedit
 * 3.设置textedit的对齐方式
*/
    //新建一个QSplitter类对象,作为主分割窗口,设定此分割窗口为水平分割窗口
    QSplitter * splitterMain = new QSplitter(Qt::Horizontal,0);
    //新建一个QTextEdit类对象,并将其插入主分割窗口中
    QTextEdit * textLeft = new QTextEdit(QObject::tr("Left Widget"), splitterMain);
    //设为中心对齐
    textLeft->setAlignment(Qt::AlignCenter);
/*
 * 右分割窗口
 * 1.建立副分割窗口,加到主窗口中
 * 2.设置分割条
 * 3.在右窗口中添加上下两个文本编辑器
*/
    //新建一个QSplitter类对象,作为右分割窗口,设定此分割窗口为垂直分割窗口,并以主分割窗口为父窗口
    QSplitter * splitterRight = new QSplitter(Qt::Vertical,splitterMain);

    splitterRight->setOpaqueResize(false);//设置分割窗口分割条,在拖拽时是否实时显示(true)。

    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);
    splitterMain->setStretchFactor(1,1);
    //调用setStretchFactor()方法设定可伸缩控件,它的第一个参数用于指定设置的控件序号,
    //控件序号按插入的先后顺序从0起开始编号;第二个参数大于0,表示此控件为可伸缩控件。
    //此实例中设定右部的分割窗口为可伸缩控件,当整个对话框的宽度发生变化时,
    //左部的文本编辑框宽度保持不变,右部的分割窗口宽度随整个对话框大小的改变进行调整。
    splitterMain->setWindowTitle(QObject::tr("Splitter"));


    splitterMain->show();
    return a.exec();
}

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值