概述

分割窗口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. MySQL实现排名并查询指定用户排名功能

    表结构: CREATE TABLE test.testsort ( id ) NOT NULL AUTO_INCREMENT, uid ) COMMENT '用户id', score , ) DEFA ...

  2. PHP多进程非阻塞模式下结合原生Mysql与单进程效率测试对比

    公司在做游戏服务器合并的时候,对大批量数据表做了合并操作,难免会出现数据格式不一致问题.根据玩家反映BUG排查,是因为某个模块下日志表出现了数据格式问题导致. 目前想到的是有两种方案解决,第一种就是把 ...

  3. Strom学习笔记2:Storm Maven Project-StromStack工程

    1:IntelliJ新建Maven工程

  4. Linux内核Socket参数调优

    可调优的内核变量存在两种主要接口:sysctl命令和/proc文件系统,proc中与进程无关的所有信息都被移植到sysfs中.IPV4协议栈的sysctl参数主要是sysctl.net.core.sy ...

  5. unknown variable 'log_bin_basename'

    今天在处理一问题时,在my.cnf中设置了log_bin_basename=/DATA/log-bin,在启动时报unknown variable 'log_bin_basename' 经查mysql ...

  6. 20145208 蔡野 《网络对抗》Exp9 web安全基础实践

    20145208 蔡野 <网络对抗>Exp9 web安全基础实践 本实践的目标理解常用网络攻击技术的基本原理.Webgoat实践下相关实验. 实验后回答问题 (1)SQL注入攻击原理,如何 ...

  7. 【python021-函数lambda表达式】

    一.匿名函数 1.lambda表达式 >>> g = lambda x:x*2+1>>> g(5)11>>> ---冒号前面的x是函数的参数,冒号 ...

  8. P4213 【模板】杜教筛(Sum)(杜教筛)

    根据狄利克雷卷积的性质,可以在低于线性时间复杂度的情况下,求积性函数前缀和 公式 \[ 求\sum_{i=1}^{n}\mu(i) \] 因为\(\mu*I=\epsilon\) 所以设\(h=\mu ...

  9. 最大匹配字符串LCS,The Longest Common Substring

    public enum BackTracking { UP, LEFT, NEITHER, UP_AND_LEFT } public abstract class LCSBaseMatch { /// ...

  10. java.lang.OutOfMemoryError:GC overhead limit exceeded

    在调测程序时报java.lang.OutOfMemoryError:GC overhead limit exceeded 错误 错误原因:在用程序进行数据切割时报了该错误.由于在本地执行数据切割测试的 ...