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

[cpp]  view plain copy

 

//main.cpp

#include <QApplication>

#include <QSplitter>

#include <QTextEdit>

#include <QTextCodec>

int main(int argc, char *argv[])

{

QTextCodec::setCodecForTr(QTextCodec::codecForLocale());

QApplication app(argc, argv);

//创建主分割窗口 设置方向为水平分割窗口

QSplitter *mainSplitter = new QSplitter(Qt::Horizontal, 0);

//创建一个QTextEdit控件 设置其父控件为mainSplitter

QTextEdit *leftEdit = new QTextEdit(QObject::tr("左窗口"), mainSplitter);

//设置QTextEdit控件中的文字的对齐方式居中显示

leftEdit->setAlignment(Qt::AlignCenter);

//创建右分割窗口 设置其父控件为mainSplitter 设置方向为垂直分割窗口 最后其分割成上下两个窗口

QSplitter *rightSplitter = new QSplitter(Qt::Vertical, mainSplitter);

//设定分割窗口的分割条在拖动时是否为实时更新 true为实时更新 false则在拖动时只显示一条灰色的线条

//在拖动到位并弹起鼠标后再显示分隔条

rightSplitter->setOpaqueResize(false);

//开始将其分割成上下两个窗口

QTextEdit *upEdit = new QTextEdit(QObject::tr("上窗口"), rightSplitter);

upEdit->setAlignment(Qt::AlignCenter);

QTextEdit *bottomEdit = new QTextEdit(QObject::tr("下窗口"), rightSplitter);

bottomEdit->setAlignment(Qt::AlignCenter);

//设定可伸缩控件 第一个参数指定控件设置的控件序号,该控件序号按插入的先后次序依次从0开始编号

//第二个参数大于0表示此控件为伸缩控件 此例中设置右部分割窗口为可伸缩控件

mainSplitter->setStretchFactor(1, 1);

mainSplitter->setWindowTitle(QObject::tr("分割窗口"));

mainSplitter->show();

return app.exec();

}

p { margin-bottom: 0.25cm; line-height: 115% }
a:link { so-language: zxx }

 

下面是我自己改的代码,调整完后结果有所改变:

//main.cpp
#include <QApplication>
#include <QSplitter>
#include <QTextEdit>
#include <QTextCodec>

int main(int argc, char *argv[])
{
QTextCodec::setCodecForTr(QTextCodec::codecForLocale());
QApplication app(argc, argv);



//创建主分割窗口 设置方向为水平分割窗口
QSplitter *mainSplitter = new QSplitter(Qt::Horizontal, 0);
//创建一个QTextEdit控件 设置其父控件为mainSplitter

//创建右分割窗口 设置其父控件为mainSplitter 设置方向为垂直分割窗口 最后其分割成上下两个窗口
QSplitter *rightSplitter = new QSplitter(Qt::Vertical, mainSplitter);
//设定分割窗口的分割条在拖动时是否为实时更新 true为实时更新 false则在拖动时只显示一条灰色的线条
//在拖动到位并弹起鼠标后再显示分隔条
rightSplitter->setOpaqueResize(true);
//开始将其分割成上下两个窗口
QTextEdit *upEdit = new QTextEdit(QObject::tr("上窗口"), rightSplitter);
upEdit->setAlignment(Qt::AlignCenter);
QTextEdit *bottomEdit = new QTextEdit(QObject::tr("下窗口"), rightSplitter);
bottomEdit->setAlignment(Qt::AlignCenter);
//设定可伸缩控件 第一个参数指定控件设置的控件序号,该控件序号按插入的先后次序依次从0开始编号
//第二个参数大于0表示此控件为伸缩控件 此例中设置右部分割窗口为可伸缩控件

QTextEdit *leftEdit = new QTextEdit(QObject::tr("左窗口"), mainSplitter);
//设置QTextEdit控件中的文字的对齐方式居中显示
leftEdit->setAlignment(Qt::AlignCenter);

//禁止拖拽
QSplitterHandle *splitterHandle = mainSplitter->handle(1);
if(splitterHandle)
{
splitterHandle->setDisabled(true);
}
mainSplitter->setStretchFactor(1, 10);
mainSplitter->setWindowTitle(QObject::tr("分割窗口"));
mainSplitter->show();

return app.exec();
}

pre.ctl { font-family: "Liberation Mono", monospace }
p { margin-bottom: 0.25cm; line-height: 115% }
code.ctl { font-family: "Liberation Mono", monospace }
a:link { so-language: zxx }

 
 
 

左右位置换了,而且左右的窗口已经不能被拉伸了(因为加上了红色部分代码)。

QT5学习:分割窗口类的使用的更多相关文章

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

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

  2. [Android FrameWork 6.0源码学习] Window窗口类分析

    了解这一章节,需要先了解LayoutInflater这个工具类,我以前分析过:http://www.cnblogs.com/kezhuang/p/6978783.html Window是Activit ...

  3. Qt创建分割窗口

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

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

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

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

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

  6. 分割窗口QSplitter类

    概述 分割窗口QSplitter类在应用程序中经常用到,它可以灵活分割窗口的布局,经常用在类似文件资源管理器的窗口设计中 在Qt开发中,QSplitter是比较常用到的,也就是分割窗口.并且窗口分割处 ...

  7. Qt5布局管理(二)——QDockWidget停靠窗口类

    转载:LeeHDsniper 停靠窗口类QDockWidget 实例效果 如右图所示,左半部分MainWindow是该窗口的中心窗口,右边的最下面两个停靠窗口可以跳出该窗口: 但是第一个停靠窗口只能停 ...

  8. Yaf零基础学习总结5-Yaf类的自动加载

    Yaf零基础学习总结5-Yaf类的自动加载 框架的一个重要功能就是类的自动加载了,在第一个demo的时候我们就约定自己的项目的目录结构,框架就基于这个目录结构来自动加载需要的类文件. Yaf在自启动的 ...

  9. 窗口类(Window Class)概述

    windows窗口编程(通常意义上的win32)有几个比较核心的概念:入口函数WinMain.窗口类Window Class.窗口过程.消息处理机制.通用控件.本文主要介绍窗口类的相关概念,包括: 窗 ...

随机推荐

  1. Django基础013--redis开发

    1.redis配置 在settings.py中加入以下代码块,可支持多个redis的配置 1 CACHES = { 2 "default": { 3 "BACKEND&q ...

  2. navicate for mysql命令中输入中文报错

    insert into xsxx(name,xb) values('李四','男') 错误提示: [SQL]insert into xsxx3(name,xb) values('李四','男') [E ...

  3. Nacos源码分析-事件发布机制

    温馨提示: 本文内容基于个人学习Nacos 2.0.1版本代码总结而来,因个人理解差异,不保证完全正确.如有理解错误之处欢迎各位拍砖指正,相互学习:转载请注明出处. Nacos的服务注册.服务变更等功 ...

  4. SFC style CSS variable injection

    摘要 在单文件组件样式中支持使用组件状态驱动的 CSS 变量( CSS 自定义属性). 基础示例 <template> <div class="text"> ...

  5. Python图表库Matplotlib 组成部分介绍

    图表有很多个组成部分,例如标题.x/y轴名称.大刻度小刻度.线条.数据点.注释说明等等. 我们来看官方给的图,图中标出了各个部分的英文名称 Matplotlib提供了很多api,开发者可根据需求定制图 ...

  6. 5Java基础整理

    1.API:Application programming interface 举例:System类中的 public static void arraycopy(int[] src,int srcP ...

  7. 上手Coc.nvim 完全指南

    上手Coc.nvim 完全指南 介绍 Coc.nvim 是一个基于NodeJS 的适用于Vim8, Neovim 的Vim 智能补全插件. 拥有完整的LSP 支持.配置.使用方式及插件系统的整体风格类 ...

  8. SpringBoot读取Resource下文件的几种方式(十五)

    需求:提供接口下载resources目录下的模板文件,(或者读取resources下的文件)给后续批量导入数据提供模板文件. 方式一:ClassPathResource //获取模板文件:注意此处需要 ...

  9. 第三篇 -- SpringBoot打包成jar包

    本篇介绍怎么将SprintBoot项目打包成jar包. 第一步:点击IDEA右侧的maven. 第二步:双击package,然后就会开始打包,当出现build success时,就打包成功了,一般在t ...

  10. Java大整形BigInteger的用法

    基本类型int有32位,范围是:[-2147483648, 2147483647](正负21亿多) 基本类型long有64位,范围是:[-9223372036854775808, 9223372036 ...