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

[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. 求数组的子数组之和的最大值III(循环数组)

    新的要求:一维数组改成循环数组,只是涉及简单算法,只是拿了小数做测试 想法:从文件读取数组,然后新建数组,将文件读取的数组在新数组中做一下连接,成为二倍长度的数组,然后再遍历,将每次遍历的子数组的和存 ...

  2. Java基础00-Debug11

    1. Debug 1.1 Debug概述 1.2 Debug操作流程 1.2.1 如何加断点 1.2.2 如何运行加了断点的程序 1.2.3 看哪里 1.2.4 点哪里 1.2.5 如何删除断点 多个 ...

  3. UI作品评审总结:切忌过度设计,注意设计闭环

    本期,我们一起看看学长认证模块--UI同学的作品评审.   拿好小板凳,做好笔记,我们开始吧!     我们拿了两个典型的作品进行了一个讲解,做的特色都还不错,但是都有些小问题.   先来看一下第一位 ...

  4. 【LeetCode】144. 二叉树的前序遍历

    144. 二叉树的前序遍历 知识点:二叉树:递归:Morris遍历 题目描述 给你二叉树的根节点 root ,返回它节点值的 前序 遍历. 示例 输入:root = [1,null,2,3] 输出:[ ...

  5. Guava - Map

    创建Map 通常在创建map时使用new HashMap<>();的方法,guava提供了一个简洁的方法 Maps.newHashMap(); List转换Map List<Solu ...

  6. Django中ORM是啥?

    ORM是啥是许多Django新手的苦恼. ORM中的"O"就是object,也就是我们说的对象:R指的是relations关系:M指的是mapping也就是映射.所以ORM是对象- ...

  7. java继承基础详解

    java继承基础详解 继承是一种由已存在的类型创建一个或多个子类的机制,即在现有类的基础上构建子类. 在java中使用关键字extends表示继承关系. 基本语法结构: 访问控制符 class 子类名 ...

  8. 随处可编辑的编辑器之神VIM

    据说这世界上只有三种编辑器:Vim,Emacs 和 其他编辑器,其中 Vim 被称作编辑器之神,Emacs 被称作神的编辑器,当然,其他编辑器永远只能是其他编辑器. 拿一位 网友的话 来说,VIM 的 ...

  9. 关于MySQL8的WITH查询学习

    目录 前言 示例 练习 总结 前言 对于逻辑复杂的sql,with可以大大减少临时表的数量,提升代码的可读性.可维护性 MySQL 8.0终于开始支持with语句了,对于复杂查询,可以不用写那么多的临 ...

  10. 太细了!阿里十年技术专家联合打造“最新”Jetpack强化实战手册

    前言 提到Android架构,我们首先想到的是MVC,MVP,MVVM.他们主要是针对视图和模型的.随着Android的发展,从原来的框架很少,全是自己动手撸.到现在框架越来越多,选型也越来越多,导致 ...