【QT开发笔记-基础篇】| 第四章 事件QEvent | 4.1 整体效果演示、技术点

news2025/1/9 1:44:27

事件,在 Qt 中是很重要的一块内容,在实际工作中用到的也很多。

这里用一章的篇幅来讲解它。

本节先看下本章的一个总览,演示下所有效果,以及涉及到的一些技术点。

1.1 常用的事件讲解

整体效果如下:
demo

详细讲解以下事件:

  • 鼠标进入/离开事件

  • 鼠标按下/移动/释放事件

  • 键盘事件

  • 定时器事件

  • 拖动事件

  • 绘图事件

  • 右键菜单


1.2 事件的处理流程

学会了常用事件处理函数,会详细讲解事件处理流程。

实际工作中,往往窗口是相互嵌套的,比如一个标签放在一个 widget 中, 一个 widget 也可能放在另一个 widget 中,这时就涉及在父子窗口之间的传递,什么时候需要传递,什么时候又要终止传递。这是需要搞清楚的。

最终给大家总结了一张图:

image-20230914162817248


1.3 小案例:无边框窗口

最后,实现一个简单的小案例-无边框窗口,整体效果如下:

simple_frameless1

当然,这里仅仅是为了复习事件,做的一个特别精简的无边框窗口。

完善的无边框窗口,会在 《UI 美化实战课程》 中详细讲解,这里仅做一个演示。

它支持以下特性:

  • 支持鼠标拖拽4个边框和4个角,来缩放窗体
  • 支持鼠标拖动标题栏,来移动窗体
  • 支持双击标题栏,来实现窗口最大化和恢复
  • 最大化状态下,拖动标题栏恢复原始大小

整体效果如下:

frame3

PS:网上能查到的各种实现,各种小 BUG,包括但不限于:

  • 缩放窗口时,把窗口 “推走”;
  • 最大化状态变为最小化后,再次恢复不是最大化状态
  • 点击标题栏后,右上角的按钮失去 “活性”

在我实现的无边框窗口中,这些问题都一一解决了!


无边框窗口_效果体验地址:

链接:https://pan.baidu.com/s/1_3FwQ5B4Uop-PwUXqQmFcA?pwd=qtui
提取码:qtui

也可以关注公粽号: QT课堂,回复 无边框窗口 来获取

关于无边框窗口源码的获取:

  • 会在 《UI 美化实战课程》 中详细讲解

    会从零开始、从零新建项目实现一个完善的无边框窗口,可以直接应用到商业项目中

  • 不止UI美化

    当然, 《UI 美化实战课程》 包括的干货非常多,同样的讲课风格、详尽的课程笔记、规范的代码风格

    近期推出,敬请期待!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【学习笔记】C#基础 - 由C/C++衍生出来的面向对象的编程语言

一、程序结构 1、基本语法 using System; // C#程序第一条语句都是 using System; // using 关键字(可多个):在程序中包含命名空间namespace RectangleApplication // namespace 声明(可多个):包含一系列…

被删除并且被回收站清空的文件如何找回

文件的意外删除和回收站清空是许多用户面临的普遍问题。这种情况下,很多人会感到无助和焦虑,担心自己的重要文件永远丢失。然而,幸运的是,依然存在一些有效的方法能够帮助我们找回被删除并且被回收站清空的文件。 ▌被删除文件在…

【deepspeed】【训练】【交互】【wandb】训练过程中的wandb交互如何去除

问题:gpt模型训练时,中间有询问输入账户,交互式的询问影响自动执行脚本,询问是这样的: 解决办法: 在脚本中设置环境变量,关闭wandb,如下图: 其他: log中没有…

低代码框架开发平台厂家:做好产品,实现流程化办公!

在新的发展时代,低代码技术平台拥有诸多优势特点,成为广大企业实现降本、增效办公效率的得力助手。什么样的低代码框架开发平台厂家值得信任与青睐?都有哪些主要产品?为了帮助大家了解这一讯息,一起来了解流辰信息低代…

学习网络编程No.6【将服务器日志和守护进程化】

引言: 北京时间:2023/9/1/21:15,下午刚更新完博客,同理再接再厉,这样整天不需要干什么,除了玩手机的日子不多了,马上就要开学,每天需要签到签退的日子就要来临,烦躁&…

原生小程序Donut多端开发

原生小程序Donut多端开发 原生小程序 Donut 多端:跨平台开发的新选择 随着移动应用开发的不断发展,跨平台开发成为了一个备受关注的话题。开发人员希望能够使用一套代码库,同时支持多个平台,从而提高开发效率并覆盖更广泛的用户群…

移除数组中指定元素的所有数

给你一个数组 nums 和一个值 val,你需要 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 思路1:暴力查找——覆盖法,遇到一次val就挪动后面的数据删除 代码 int removeElement(int* nums, int numsSize, int val) {int…

英国入境前需要准备什么?

英国,这个位于欧洲北部的岛国,以其悠久的历史、文化和美丽的风景而闻名于世。无论是旅游观光、留学深造,还是商务差旅,前往英国都需要进行一些入境前的准备工作,以确保您的旅行顺利进行。下面,知识人网小编…

uniapp之uni-forms表单组件封装的双向数据绑定

前言 在uniapp中, 封装组件的props单向数据流更为严格, 不允许改变子组件的props属性, 所以记录下uniapp下的form表单的组件是如何封装的, 双向数据是如何绑定的. 版本: "dcloudio/uni-ui": "^1.4.27", "vue": "> 2.6.14 < 2.7&quo…

xshell---git上传文件到gitee远程仓库配置

1.git下载 如果没有xshell下没有下载过git&#xff0c;可以参考这篇的教程&#xff1a;Linux配置安装 git 详细教程 下载后可以通过 git --version 查看git的版本号&#xff0c;验证是否安装成功 2.新建仓库 首先需要在gitee上注册一个账号 然后再主页面点击右上边框的 号…

uniapp——实现聊天室功能——技能提升

这里写目录标题 效果图聊天室功能代码——html部分代码——js部分代码——其他部分 首先声明一点&#xff1a;下面的内容是从一个uniapp的程序中摘录的&#xff0c;并非本人所写&#xff0c;先做记录&#xff0c;以免后续遇到相似需求抓耳挠腮。 效果图 聊天室功能 发送图片 …

《C++ Primer》第3章 字符串、向量和数组(三)

参考资料&#xff1a; 《C Primer》第5版《C Primer 习题集》第5版 3.5 数组&#xff08;P101&#xff09; 数组类似于 vector &#xff0c;不同点在于数组的大小固定不变&#xff0c;在某些情况下性能较好&#xff0c;但灵活性较差。 3.5.1 定义和初始化内置数组&#xff…

一文了解袋鼠云在实时数据湖上的探索与实践

近日&#xff0c;袋鼠云大数据引擎专家郝卫亮&#xff0c;为大家带来了《袋鼠云在实时数据湖上的探索与实践》主题分享&#xff0c;帮助大家能了解到什么是实时数据湖、如何进行数据湖选型及数据平台建设数据湖的经验。 如今&#xff0c;大规模、高时效、智能化数据处理已是“…

阿里云新用户:定义,专享福利及优惠活动

随着云计算技术的快速发展&#xff0c;越来越多的个人与企业开始将业务迁移到云端。阿里云作为国内领先的云计算服务提供商&#xff0c;为新用户提供了一系列专享福利和优惠活动。本文将详细介绍阿里云新用户的定义、专享福利和优惠活动&#xff0c;助力大家轻松上云&#xff0…

OPCAE接口

目录 1 主要接口 1.1 OPCEventServer对象 1.2 OPCEventSubscription对象 1.3 OPCEventAreaBrowser对象&#xff08;可选&#xff09; 1.4 自定义接口开发注意 2 OPCEventServer 2.1 接口介绍 2.2 接口方法 3 IOPCEventServer2 3.1 接口介绍 3.2 接口方法 4 IConnect…

堆排序(Topk问题)

1.堆排序 堆排序是在堆的思想上面进行延伸的一种排序方法,原理就是利用堆的特性. 堆排序首先得建堆,这里建堆有一个原则: 升序建大堆降序建小堆 利用堆删除的思想来进行排序: 建堆和堆删除都可以使用向下调整的方法来实现 堆删除的向下调整和建堆的向上调整在堆的实现这篇博…

快速搭建超轻量级图床——Cpolar+和树洞外链

文章目录 1.前言2. 树洞外链网站搭建2.1. 树洞外链下载和安装2.2 树洞外链网页测试2.3 cpolar的安装和注册 3.本地网页发布3.1 Cpolar临时数据隧道3.2 Cpolar稳定隧道&#xff08;云端设置&#xff09;3.3 Cpolar稳定隧道&#xff08;本地设置&#xff09; 4.公网访问测试5.结语…

MT6785(Helio G95)安卓核心板_联发科4G高能低耗安卓主板开发板

MTK6785&#xff08;Helio G95&#xff09;安卓核心板采用八核 CPU 具有两个强大的 Arm Cortex-A76 处理器内核&#xff0c;主频高达 2.05GHz&#xff0c;外加六个 Cortex-A55 高效处理器。其强大的图形性能由 Arm Mali-G76 MC4 提供&#xff0c;速度可提升至 900MHz 。高达 10…

【高效开发工具系列】Fork版本管理

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kuan 的首页,持续学…

CUDA小白 - NPP(9) 图像处理 Statistical Operations

cuda小白 原始API链接 NPP GPU架构近些年也有不少的变化&#xff0c;具体的可以参考别的博主的介绍&#xff0c;都比较详细。还有一些cuda中的专有名词的含义&#xff0c;可以参考《详解CUDA的Context、Stream、Warp、SM、SP、Kernel、Block、Grid》 常见的NppStatus&#xf…