概述

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

最新文章

  1. SQLServer
  2. 难道这就是JavaScript中的&quot;闭包&quot;
  3. 【poj3461】 Oulipo
  4. HD 2177(威佐夫博弈 入门)
  5. 【转】android UI进阶之自定义组合控件
  6. tryparse的用法,^0*[1-9]\d*$
  7. 基于MFC的Opengl实现动画
  8. 射击的乐趣:WIN32诠释打飞机游戏源码补充
  9. SQL SERVER 2008 nvarchar 转换 deciaml 失败(nvarchar to decimal)
  10. [HMLY]5.模仿喜马拉雅 FM
  11. dump文件解析之探索.Net的内存
  12. iOS 图片9切
  13. Mysql 连接数,最大并发数设置
  14. C++ 屏幕录制
  15. 大学java教案之MySQL安装图解
  16. FreeSWITCH IVR中lua调用并执行nodejs代码
  17. libgdx学习记录22——3d物体创建
  18. Android-卖票案例static-不推荐此方式
  19. Some index files failed to download. They have …… or old ones used instead
  20. Dijkstra+优先队列 堆优化

热门文章

  1. android studio下载地址
  2. Python3+PyQt5+PyCharm 桌面GUI开发环境搭建
  3. Linux - TCP编程相关配置2
  4. 成绩统计程序(Java)
  5. oracle审计例子
  6. linux上的文件服务
  7. 快速阅读《QT5.9 c++开发指南》1
  8. ODAC(V9.5.15) 学习笔记(四)TOraDataSet
  9. 【基本知识】Flume基本环境搭建以及原理
  10. IDEA旗舰版新建web项目