zoukankan      html  css  js  c++  java
  • 分割窗口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();
    }
    

    运行结果

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

  • 相关阅读:
    如何在EasyDSS内调用的iframe地址设置自动播放?
    雏鹰训练营第一次作业
    211806152 蔡钰玲 http://www.cnblogs.com/211806152Erika/ https://github.com/ErikaSakii
    Python05:while循环
    Python04:简单if逻辑判断
    Python03:用户交互输入格式输出
    Python02:变量
    Python01:HelloWorld
    课后作业(一)
    软工假期预先作业
  • 原文地址:https://www.cnblogs.com/Manual-Linux/p/9314635.html
Copyright © 2011-2022 走看看