C++版QT:分割窗口

目录

mainwindow.h

mainwindow.cpp

main.cpp


Qt的分割窗口功能允许用户将一个窗口分割成多个区域,每个区域可以独立地显示不同的内容。这种功能在许多应用程序中非常有用,例如编辑器、浏览器和IDE等。

理解Qt的分割窗口,需要从以下几个方面入手:

窗口布局:在Qt中,窗口通常由一个主窗口(QWidget)和其子部件(widgets)组成。分割窗口就是将这个主窗口分割成多个子窗口(通常也是QWidget),每个子窗口可以独立地移动、调整大小和显示内容。

分割器(Splitter):Qt提供了一个特殊的部件叫做QSplitter,用于实现窗口的分割。QSplitter可以包含多个子部件,并且可以根据需要进行拖动和调整大小,从而实现窗口的动态分割。

使用方式:要使用QSplitter,首先需要创建一个QSplitter对象,然后添加要分割的子部件。这些子部件可以是任何QWidget的实例,例如QLabel、QTextEdit、QTableWidget等。

布局管理:与普通的QWidget一样,QSplitter也需要进行布局管理。可以使用布局管理器(如QVBoxLayout或QHBoxLayout)来控制QSplitter的位置和大小。

事件处理:由于分割窗口涉及到用户的交互操作(如拖动分割线),因此需要处理一些特殊的事件,如鼠标事件和大小调整事件。可以通过重写QWidget的事件处理函数(如mousePressEvent、resizeEvent等)来实现这些功能。

动态调整:QSplitter的一个重要特性是它可以动态调整子部件的大小。这意味着用户可以通过拖动分割线来改变各个子窗口的大小,从而实现灵活的界面布局。

下面是一个分割窗口的案例:

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H
​
#include <QMainWindow>
​
class MainWindow : public QMainWindow
{
    Q_OBJECT
​
public:
    MainWindow(QWidget* parent = 0);
    ~MainWindow();
};
​
#endif // MAINWINDOW_H
​

mainwindow.cpp

#include "mainwindow.h"
​
MainWindow::MainWindow(QWidget* parent)
    : QMainWindow(parent)
{
}
​
MainWindow::~MainWindow()
{
​
}
​

main.cpp

#include "mainwindow.h"
#include <QApplication>
#include<Qsplitter>
#include<QTextEdit>
#include <QTextCodec>
​
int main(int argc, char* argv[])
{
    QApplication a(argc, argv);
    QFont font("ZYSong18030", 12);
    a.setFont(font);
    //主分割窗口
    QSplitter* splitterMain = new QSplitter(Qt::Horizontal, 0);
    QTextEdit* textLeft = new QTextEdit(QObject::tr("Left Widget"), splitterMain);
    textLeft->setAlignment(Qt::AlignCenter);
    //右部分割窗口
    QSplitter* splitterRight = new QSplitter(Qt::Vertical, splitterMain);
    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);
    splitterMain->setStretchFactor(1, 1);
    splitterMain->setWindowTitle(QObject::tr("Splitter"));
    splitterMain->show();
​
    //MainWindow w;
    //w.show();
​
    return a.exec();
}
​

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

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

相关文章

SQL注入流程与常用语句

FLAG&#xff1a;别来我梦里了&#xff0c;我已负担不起醒来的失落 专研方向: Mysql&#xff0c;sql注入 每日emo&#xff1a;好久不见&#xff0c;寒暄几句&#xff0c;缺耗尽了半生的勇气 欢迎各位与我这个菜鸟交流学习 SQL注入流程与常用语句 1、判断注入类型&#xff0c;数…

华为三层交换机之基本操作

Telnet简介 Telnet是一个应用层协议,可以在Internet上或局域网上使用。它提供了基于文本的远程终端接口&#xff0c;允许用户在本地计算机上登录到远程计算机&#xff0c;然后像在本地计算机上一样使用远程计算机的资源。Telnet客户端和服务器之间的通信是通过Telnet协议进行的…

element-UI上传文件后valid提示不消失

问题描述&#xff1a;上传文件完成后&#xff0c;必填信息提示不消失 解决方法&#xff1a;在<el-form-item>标签添加show-message属性&#xff0c;字段为空时才显示提示信息 <el-form-item :prop"fileList" :show-message"!form.fileList || !form.f…

web服务和前端交互相关的上中游业务技术知识点梳理

文章目录 前言一、业务API网关鉴权Cookie Session 实现 API 鉴权API Key API Secrettoken 机制实现 API 鉴权 二、Tomcat、Servlet、SpringMVC总结 前言 可能之前在学校里面做的很多东西是纯后端的&#xff0c;不会涉及到太多和前端交互的细节&#xff0c;很多新手对前后端交…

MR image smoothing or filtering 既 FWHM与sigma之间的换算关系 fslmaths -s参数

这里写目录标题 FWHM核高斯核中的sigma是有一个换算公式&#xff1a;结果 大量的文献中都使用FWHM 作为单位&#xff0c;描述对MR等数据的平滑&#xff08;smoothing&#xff09;或者滤波&#xff08;filtering&#xff09;过程。FWHM 通常是指full width at half maximum的缩写…

你是在思考,还是找认同?

这两天&#xff0c;有一篇批判腾讯的文章&#xff0c;开始在互联网圈子里流传开来。 我身边也有人在传播。好奇瞅了下&#xff0c;观察到一个很有意思的地方&#xff1a; 赞同这篇文章的&#xff0c;往往也都是平时那些认为&#xff0c;腾讯面对阿里和字节的冲击岌岌可危的&…

配置dns主从服务器,实现正反向解析

一、安装bind服务 yum install bind -y二、修改主配置文件/etc/named.conf 三、配置数据配置文件/var/named/baidu 四、重启服务&#xff0c;进行测试 systemctl restart named

南昌市青山湖、滕王阁、洛阳路隧道FM调频广播集群通信调度系统应用案例

一、用户需求 青山湖隧道&#xff0c;是南昌市一条东西走向的城市主干道&#xff0c;隧道为双向6车道&#xff0c;长1070米&#xff0c;其中湖底暗埋段为550米&#xff0c;净高5.45米&#xff0c;两孔每孔净宽12.4米。 滕王阁隧道是南昌市沿江北大道与沿江中大道连通工程&#…

【代码随想录-数组】移除元素

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老导航 檀越剑指大厂系列:全面总结 jav…

案例分享 | 助力数字化转型:嘉为科技项目管理平台上线

嘉为科技项目管理平台&#xff08;一期&#xff09;基于易趋&#xff08;EasyTrack&#xff09;进行实施&#xff0c;通过近一年的开发及试运行&#xff0c;现已成功交付上线、推广使用&#xff0c;取得了良好的应用效果。 1.关于广州嘉为科技有限公司&#xff08;以下简称嘉为…

JRT执行SQL脚本

我们可能会从其他库导入表到JRT要支持的库里。或者用其他语言生成导表SQL来让JRT执行SQL创建表和导入数据&#xff0c;为此需要一个能运行SQL脚本文件的脚步。 脚本示例&#xff0c;这个是用JRT的M生成迁移表SQL生成的&#xff1a; 导入SQL的脚本&#xff1a; import JRTBL…

Docker深入解析:从基础到实践

Docker基础知识 Docker是什么&#xff1a;定义和核心概念解释 Docker是一个开源项目&#xff0c;它诞生于2013年&#xff0c;旨在自动化应用程序的部署过程&#xff0c; 让应用程序能够在轻量级的、可移植的、自给自足的容器中运行。这些容器可以在几乎任何机器上运行&#xf…

Task04:DDPG、TD3算法

本篇博客是本人参加Datawhale组队学习第四次任务的笔记 【教程地址】https://github.com/datawhalechina/joyrl-book 【强化学习库JoyRL】https://github.com/datawhalechina/joyrl/tree/main 【JoyRL开发周报】 https://datawhale.feishu.cn/docx/OM8fdsNl0o5omoxB5nXcyzsInGe…

js中字符串string,遍历json/Object【匹配url、邮箱、电话,版本号,千位分割,判断回文】

目录 正则 合法的URL 邮箱、电话 字符串方法 千位分割&#xff1a;num.slice(render, len).match(/\d{3}/g).join(,) 版本号比较 判断回文 json/Object 遍历 自身属性 for...inhasOwnProperty(key) Object.获取数组(obj)&#xff1a;Object.keys&#xff0c;Object…

ENVI下基于知识决策树提取地表覆盖信息

基于知识的决策树分类是基于遥感影像数据及其他空间数据,通过专家经验总结、简单的数学统计和归纳方法等,获得分类规则并进行遥感分类。分类规则易于理解,分类过程也符合人的认知过程,最大的特点是利用的多源数据。 决策树分类主要的工作是获取规则,本文介绍使用CART算法…

10 个能恢复硬盘丢失文件的数据恢复软件

用于从计算机、外部硬盘驱动器、USB 闪存驱动器、存储卡或其他存储设备恢复丢失、删除或损坏的数据的软件称为数据恢复软件。该软件会在存储设备中搜索丢失或损坏的文件的痕迹&#xff0c;然后再尝试恢复它们。 导致数据丢失或损坏的原因有多种&#xff0c;包括硬件故障、格式…

【论文笔记】《Learning Deconvolution Network for Semantic Segmentation》

重要说明&#xff1a;严格来说&#xff0c;论文所指的反卷积并不是真正的 deconvolution network 。 关于 deconvolution network 的详细介绍&#xff0c;请参考另一篇博客&#xff1a;什么是Deconvolutional Network&#xff1f; 一、参考资料 Learning Deconvolution Netwo…

朴素贝叶斯

一、数学基础 先验概率&#xff08;Prior Probability&#xff09;&#xff1a; 先验概率是在考虑任何新观测数据之前&#xff0c;基于先前的知识或信仰&#xff0c;对事件发生的概率的初始估计。这是对事件的主观先验信仰或经验的量化体现。 记作 P(A)&#xff0c;表示事件 …

NFS远程共享存储

NFS&#xff1a;Network File System 网络文件系统&#xff0c;NFS 和其他文件系统一样&#xff0c;是在 Linux 内核中实现的&#xff0c;因此 NFS 很难做到与 Windows 兼容。NFS 共享出的文件系统会被客户端识别为一个文件系统&#xff0c;客户端可以直接挂载并使用。是Unix系…

《Vue3 基础知识》 Vue2+ElementUI 自动转 Vue3+ElementPlus(GoGoCode)

前言 GoGoCode 一个基于 AST 的 JavaScript/Typescript/HTML 代码转换工具。 AST abstract syntax code 抽象语法树。 实现 第一步&#xff1a;安装 GoGoCode 插件 全局安装最新的 gogocode-cli 即可 npm i gogocode-cli -g查看版本 gogocode-cli -V相关插件说明 插件描述…
最新文章