概述

分割窗口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版)》

分割窗口QSplitter类的更多相关文章

  1. Qt5布局管理(一)——QSplitter分割窗口类

    转载:LeeHDsniper 概述 本文首先通过三个实例分别介绍Qt5的分割窗口QSplitter类.停靠窗口QDockWidget类.堆栈窗体QStackedWidget类,然后介绍布局管理器的使用 ...

  2. QT5学习:分割窗口类的使用

    分割窗口在应用程序中经常用到,它可以灵活分布窗口布局,经常用于类似文件资源管理器的窗口设计中,然后抱着这样的想法简单的实现了下 [cpp]  view plain copy   //main.cpp ...

  3. Qt创建分割窗口

    1.QT中QSplitter类可以用来灵活分割窗口,从而产生可用的布局,在以后进行界面布局很有用. 2.先看代码,这个分割窗口按顺序添加子窗口: #include "mainwindow.h ...

  4. 【转载】Pyqt QSplitter分割窗口

    转载来自: http://blog.sina.com.cn/s/blog_4b5039210100h3ih.html 分割窗口在应用程序中经常用到,它可以灵活分布窗口布局,经常用于类似文件资源管理器的 ...

  5. Qt布局与分割器QSplitter

    Qt的布局方式主要有四种:   QGridLayout         栅格布局 QFormLayout       表格布局 QHBoxLayout       水平布局 QVBoxLayout   ...

  6. VS2010/MFC编程入门之四十一(文档、视图和框架:分割窗口)

    上一节中鸡啄米讲了文档.视图和框架结构中各对象之间的关系,本节主要讲讲在MFC中如何分割窗口. 分割窗口概述       分割窗口,顾名思义,就是将一个窗口分割成多个窗格,在每个窗格中都包含有视图,或 ...

  7. VS2010-MFC(文档、视图和框架:分割窗口)

    转自:http://www.jizhuomi.com/software/226.html 上一节讲了文档.视图和框架结构中各对象之间的关系,本节主要讲讲在MFC中如何分割窗口. 分割窗口概述      ...

  8. Vim的分割窗口split命令

    显示两个不同的文件:或者同时显示一个文件的两个不同地方:又或者并排比较两个文件.这一切都可以通过分割窗口实现. 打开新窗口最简单的命令如下: :split (水平分割) || :vsplit (垂直分 ...

  9. WPF自定义窗口基类

    WPF自定义窗口基类时,窗口基类只定义.cs文件,xaml文件不定义.继承自定义窗口的类xaml文件的根节点就不再是<Window>,而是自定义窗口类名(若自定义窗口与继承者不在同一个命名 ...

随机推荐

  1. Java学习笔记之Linux下的Java安装和配置

    0x00 概述 由于使用 yum 或者 apt-get 命令 安装 openjdk 可能存在类库不全,从而导致用户在安装后运行相关工具时可能报错的问题,所以此处我们推荐采用手动解压安装的方式来安装 J ...

  2. Python爬虫(一)——豆瓣下图书信息

    爬虫目的: 随着近年互联网的发展,网络上的信息飞速数量增长.在庞大的数据面前想要获得期望的信息往往如同大海捞针.通过合理的筛选,在百万甚至数亿计的数据中找到所需信息,无疑有着非常大的意义. 在豆瓣网下 ...

  3. VC++使用MapFileAndCheckSum完成自检测

    转载:https://blog.csdn.net/lekonpeng/article/details/4150464 当我们完成一个工程,编译成可执行文件后,一般是不希望这个可执行文件被人改动的,那么 ...

  4. Navicat for MySQL安装工具及破解工具

    链接: http://pan.baidu.com/s/1i500eEh 密码: 9s26

  5. github帐户和仓库的创建

    sign up is registration and sign in is logging in for "in" is to enter an existing account ...

  6. 轻重搭配|计蒜客2019蓝桥杯省赛 B 组模拟赛(一)

    样例输入: 6 1 9 7 3 5 5 样例输出: 4 思路:贪心,选错贪心思路,只能过一小部分数据,正确贪心思路:从前一半遍历,在后一半中找到比当前元素的两倍大的数(因为这里指针不会后移,所以可以采 ...

  7. 【解决办法】Undefined command/function 'mapminmax'.

    原因: 低版本7.0中没有mapminmax这个函数,对应的归一化函数是premnmx和postmnmx,具体请查看着两个函数的用法升级到2009就肯定可以正常使用这个函数了 解释: premnmx. ...

  8. Transaction之EF

    了解Entity Framework中事务处理 Entity Framework 6以前,框架本身并没有提供显式的事务处理方案,在EF6中提供了事务处理的API. 所有版本的EF,只要你调用SaveC ...

  9. Quartus工程中各文件类型的含义

    https://blog.csdn.net/jingliangliu/article/details/52245497 .jic           JTAG Indirect Configurati ...

  10. 在 2016 年学 JavaScript 是一种什么样的体验?(React从入门到放弃)

    jquery 年代 vs 前端模块化 http://blog.csdn.net/offbye/article/details/52793921 ++ 嘿,我最近接到一个 Web 项目,不过老实说,我这 ...