《八》QSplitter拆分器以及QDockWidget窗口详解

QSplitter简介

QSplitter拆分器允许用户通过拖动子部件之间的边界来控制它们的大小。

单个拆分器可以控制任意数量的小部件。QSplitter的典型用法是创建几个小部件,并使用insertWidget()或addWidget()添加它们。

常用方法 

 

默认情况下,QSplitter会动态调整其子元素的大小。如果您希望QSplitter仅在调整大小操作结束时调整子元素的大小, 那么调用setOpaqueResize(false)。

void setOpaqueResize(bool opaque = true)

将子部件的各自大小设置为列表中给定的值。

如果splitter是水平的,则这些值将以像素为单位设置每个小部件的宽度,从左到右。

如果splitter是垂直的,则从上到下设置每个小部件的高度

void setSizes(const QList<int> &list)

 示例:

//拆分窗口(分割窗口)
    QSplitter *spWindow=new QSplitter(Qt::Horizontal,0);
    QTextEdit *txtedit=new QTextEdit("左边",spWindow);

    //2,拆分右边部分窗口
    QSplitter *spRight=new QSplitter(Qt::Vertical,spWindow);
    QTextEdit *spteditup=new QTextEdit("右边上半部分窗口",spRight);
    QTextEdit *spteditdown=new QTextEdit("右边下半部分窗口",spRight);

    //3:
    QSplitter *sptext=new QSplitter(Qt::Vertical,spRight);
    QTextEdit *txteditext=new QTextEdit("测试",sptext);

    spWindow->setWindowTitle("Splitter类拆分窗口");
    spWindow->show();

QDockWidget简介

QDockWidget类提供了一个特殊的窗口部件,它可以是被锁在QMainWindow窗口内部或者是作为顶级窗口悬浮在桌面上。
        QDockWidget类提供了dock widget的概念,dock widget也就是我们熟悉的工具面板或者是工具窗口。Dock window是放置在QMindow窗口周围的dock widget区域中的。

 注意:QDockWidget目前只有锁定在QMainWindow窗口内部,才能展现出QDockWidget应有的属性,如果将QDockWidget放到布局管理器当中,那么就只能当作QWidget使用了。

QDockWidget常用方法 

 常用函数:
  1、addDockWidget:添加停靠控件,用于指定或更改停靠控件的位置以及方向。

void QMainWindow::addDockWidget(Qt::DockWidgetArea area, QDockWidget * dockwidget)
void QMainWindow::addDockWidget(Qt::DockWidgetArea area, QDockWidget * dockwidget, Qt::Orientation orientation)

2. splitDockWidget:分割窗口,用于对两个QDockWidget进行水平或垂直布局。

void QMainWindow::splitDockWidget(QDockWidget * first, QDockWidget * second, Qt::Orientation orientation)

3.tabifyDockWidget:合并窗口,用于将多个QDockWidget叠加到同一区域。

void QMainWindow::tabifyDockWidget(QDockWidget * first, QDockWidget * second)

 4、setDockNestingEnabled:是否允许嵌套布局

void QMainWindow::setDockNestingEnabled(bool enabled)

 示例:

 先创建一个中心窗口,再创建其他部件:

QTextEdit *tedit=new QTextEdit(this);//定义QTextEdit对象作为主窗口
    tedit->setAlignment(Qt::AlignCenter);//放到中心
    setCentralWidget(tedit);//设为中心部件

创建窗口1:

QDockWidget *dw1=new QDockWidget("停靠窗口(一)",this);
//设置QDockWidget的特性为DockWidgetMovable,表示该窗口可以被移动。
    dw1->setFeatures(QDockWidget::DockWidgetMovable);
    dw1->setAllowedAreas(Qt::LeftDockWidgetArea|Qt::RightDockWidgetArea);
  1. 创建一个名为"停靠窗口(一)"的QDockWidget对象,并将其指针赋值给了dw1。
  2. 使用setFeatures函数设置了QDockWidget的特性为DockWidgetMovable,表示该窗口可以被移动。
  3. 使用setAllowedAreas函数设置了QDockWidget的允许停靠区域为左侧和右侧。

在窗口中创建一个文本框,在添加停靠部件,把文本框加到停靠窗口里面:

QTextEdit *qtedit1=new QTextEdit();

    dw1->setWidget(qtedit1);
    addDockWidget(Qt::RightDockWidgetArea,dw1);

第二个窗口也类似:

QDockWidget *dw2=new QDockWidget("停靠窗口(二)",this);
    dw2->setFeatures(QDockWidget::DockWidgetClosable|QDockWidget::DockWidgetFloatable);//关闭


    QTextEdit *Qtedit2=new QTextEdit();
    dw2->setWidget(Qtedit2);
    addDockWidget(Qt::RightDockWidgetArea,dw2);

解释:

1.创建一个名为"停靠窗口(二)"的QDockWidget对象,并将其添加到当前窗口中。

2.设置QDockWidget的特性,包括可关闭和可浮动。

3.创建一个QTextEdit对象作为QDockWidget的内容部件。

4.将QDockWidget添加到右侧停靠区域(Qt::RightDockWidgetArea)。

这段代码的作用是在当前窗口中创建一个可关闭和可浮动的停靠窗口,其中的内容部件是一个QTextEdit对象,并将其添加到右侧停靠区域。

结果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/556463.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

甘特图是什么?如何利用其优化项目管理流程?

甘特图是项目管理软件中十分常见的功能&#xff0c;可以说每一个项目经理都要学会使用甘特图才能更好的交付项目。什么是甘特图&#xff1f;甘特图用来做什么&#xff1f;简单来说一种将项目任务与时间关系直观表示的图表&#xff0c;直观地展示了任务进度和持续时间。 一、甘特…

【k8s】:kubectl 命令设置简写启用自动补全功能

【k8s】&#xff1a;kubectl 命令设置简写&启用自动补全功能 1、设置kubectl命令简写2、启用kubectl自动补全功能 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; Kubernetes&#xff08;K8s&#xff09;是一个强大的容器编排平台&#…

【话题】程序员如何搞副业,简单探讨下

大家好&#xff0c;我是全栈小5&#xff0c;欢迎阅读小5的系列文章&#xff0c;这是《话题》系列文章 目录 背景前提条件打造私域广结朋友平台 技能转化为价值1. 副业途径2. 如何开展3. 未来趋势与建议4. 挑战与策略5. 规划与发展 文章推荐 背景 程序员不仅拥有将抽象概念转化…

极海APM32F003F6U7通过AEC-Q100车规级可靠性认证

行车安全是汽车行业考虑的第一要义&#xff0c;因此汽车电子MCU的可靠性尤为重要&#xff0c;极海APM32F003F6U7车规级MCU遵循AEC-Q100质量标准&#xff0c;确保汽车电子元器件在极端环境下的可靠性和稳定性&#xff0c;并顺利通过了AEC-Q100车规级可靠性认证。 关于AEC-Q100 …

Vitis HLS 学习笔记--ap_int.h / ap_fixed.h(2)-深度探究

目录 1. 前文回顾 1.1 简单背后的复杂 1.2 复杂性的来源 2. 关键代码 2.1 功能概述 2.2 关系梳理 2.3 理解构造函数二 2.4 理解HLS_CONSTEXPR 2.5 理解const volatile 3. 探究ap_int<8> c&#xff1b;经历了什么 4. 在调试中查看 1. 前文回顾 在《Vitis HLS…

基于springboot实现厨艺交流平台系统项目【项目源码+论文说明】

基于SpringBoot实现厨艺交流平台系统演示 摘要 使用旧方法对厨艺交流信息进行系统化管理已经不再让人们信赖了&#xff0c;把现在的网络信息技术运用在厨艺交流信息的管理上面可以解决许多信息管理上面的难题&#xff0c;比如处理数据时间很长&#xff0c;数据存在错误不能及时…

[算法] 动态规划

对这个算法的原有印象就是非常难理解&#xff0c;而且怎么都感觉这个算法名称有些误导&#xff1b;或者是要引申着看&#xff1f;因为里面的动态是怎么个动态&#xff1f; 这里的动态是指每一次的计算结果会影响下一次&#xff0c;或者再次的运算效率&#xff0c;也就是说下一次…

瀑布流组件(vue2)

文档连接&#xff1a;clz 加载状态、行数 可以自行控制&#xff0c;目前只支持vue2 实现效果&#xff1a;

华为手机无法弹出wifi上网认证页面处理

华为手机无法弹出wifi上网认证页面 连wifi后跳到上图界面卡住&#xff0c;不跳转到单位的上网认证界面。 打开手机的设置应用&#xff0c;点击上面的WLAN选项。 点击上面的更多WLAN设置选项。 关闭WLAN安全检测就可以正常弹出上网认证界面&#xff0c; 正常弹出上网认证界面&a…

【RAR技巧】rar压缩包的三种加密方法

文件压缩成rar压缩包后&#xff0c;想要保护文件内容不被他人随意解压&#xff0c;我们可以给rar压缩包设置加密&#xff0c;今天分享3种方法设置rar文件加密方法。 方法一&#xff1a;加密 最简单的加密方法&#xff0c;就是在加密文件时输入想要设置的密码&#xff0c;完成…

栈和队列-介绍与实现(超级详解-C语言)

栈 栈的介绍 栈的概念 栈&#xff1a;一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端 称为栈顶&#xff0c;另一端称为栈底。栈中的数据元素遵守后进先出LIFO&#xff08;Last In First Out&#xff09;的原则。 压栈…

Mac中隐私安全性设置-打开任何来源

文章目录 **Mac中隐私安全性设置-打开任何来源**一、目的二、打开方式 Mac中隐私安全性设置-打开任何来源 一、目的 从外部下载的软件频繁打不开&#xff0c;需要从隐私安全性中重新选择一下&#xff1b;默认Mac隐藏了任何来源 二、打开方式 打开终端&#xff0c;输入一下命…

配置BFD

目录 原理概述 实验目的 实验内容 实验拓扑 1.基本配置 2.配置OSPF路由协议 3.配置VRRP协议 4.配置BFD 原理概述 为了减小设备故障对网络业务造成的影响&#xff0c;提高网络的可用性&#xff0c;网络设备需要能够尽快检测到与相邻设备之间的通信故障&#xff0c;以便及…

详解运算符重载——探索运算符重载的应用

前言:运算符重载是面向对象的一个重要的知识点。我们都知道内置类型可以进行一般的运算符的运算。但是如果是一个自定义类型&#xff0c; 这些运算符就无法使用了。那么为了解决这个问题&#xff0c; 我们的祖师爷就在c中添加了运算符重载的概念。 本篇主要通过实例的实现来讲述…

短视频批量采集提取软件|视频下载工具

短视频批量采集提取软件&#xff1a;高效获取视频资源 一、开发背景 在日常业务中&#xff0c;我们经常需要获取大量的短视频资源&#xff0c;以支持各种需求&#xff0c;但传统的获取方式过于繁琐&#xff0c;一一复制链接下载效率低下。基于此需求&#xff0c;我们开发了一…

rocketmq-dashboard打包测试报错

rocketmq-dashboard运行的时候没问题&#xff0c;但是打包执行测试的时候就是报错 这时候跳过测试就可以成功 报错为 There are test failures. Please refer to D:\CodeEn\rocketmq-dashboard\target\surefire-reports for the individual test results. 你只需要跳过测试就…

Wpf 使用 Prism 实战开发Day20

备忘录功能页面完善以及优化 备忘录功能基本跟前一章节的待办事项差不多一至&#xff0c;就不再做过多的笔述了 一.备忘录功能完整页面源码 MemoView.xaml <UserControl x:Class"MyToDo.Views.MemoView"xmlns"http://schemas.microsoft.com/winfx/2006/xam…

用html写一个搜索页面

<!DOCTYPE html> <html lang"en" > <head><meta charset"UTF-8"><title>搜索框设计</title><link rel"stylesheet" href"./style.css"> </head> <body> <div class"se…

TypeScript基础入门(一、常用类型)

目录 第一章 前言 1.1 介绍TypeScript 1.2 TypeScript相比Js的优势 1.3 使用TypeScript的准备工作 第二章 TypeScript的数据类型 2.1 TypeScript的常用类型 2.1.1 概述 2.1.2 TS使用JS基本数据类型 2.1.2.1 number 2.1.2.2 string 2.1.3.3 boolean 2.1.2.4 null 2…

Pytorch DistributedDataParallel(DDP)教程一:快速入门理论篇

Pytorch DistributedDataParallel&#xff08;DDP&#xff09;教程一&#xff1a;快速入门理论篇 目录 一、 写在前面二、什么是分布式并行训练1. 并行训练2. 数据并行 三、DDP的基本原理1. DDP的训练过程2. Ring-All-Reduce算法 四、如何搭建一个Pytorch DDP代码框架1. 与DDP有…