10.9QT对话框以及QT的事件机制处理

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

MouseMoveEvent(鼠标移动事件)

widget.cpp

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);// 设置窗口为无边框,去掉标题栏等装饰this->setWindowFlag(Qt::FramelessWindowHint);// 开启鼠标跟踪模式,这样即使不按下鼠标键,鼠标移动事件也会触发this->setMouseTracking(true);
}Widget::~Widget()
{delete ui;
}// 处理鼠标移动事件
void Widget::mouseMoveEvent(QMouseEvent *event) {// 使 QLabel 跟随鼠标移动,将鼠标位置设置为 QLabel 的中心ui->label->move(event->x() - ui->label->width() / 2, event->y() - ui->label->height() / 2);// 如果鼠标左键按下,拖动整个窗口if (event->buttons() == Qt::LeftButton) {// 将窗口移动到鼠标全局位置减去初始的相对位移this->move(event->globalPos() - temp);} // 如果鼠标右键按下,关闭窗口else if (event->buttons() == Qt::RightButton) {this->close(); // 关闭窗口}
}// 处理鼠标按下事件
void Widget::mousePressEvent(QMouseEvent *event) {// 记录鼠标按下时,鼠标全局位置与窗口左上角位置的差值,用于实现拖动效果temp = event->globalPos() - this->pos();
}

widget.h

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include<QMouseEvent>  // 包含用于鼠标事件处理的头文件
#include<QPoint>       // 包含 QPoint 类,用于表示点的位置QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE// 定义 Widget 类,继承自 QWidget
class Widget : public QWidget
{Q_OBJECT  // 宏,启用 Qt 的信号与槽机制public:// 构造函数,初始化父类 QWidgetWidget(QWidget *parent = nullptr);// 析构函数,释放资源~Widget();// 用于存储鼠标按下时的全局位置与窗口左上角位置的差值,用于窗口拖动QPoint temp;// 重写鼠标移动事件处理函数,用于处理鼠标移动时的逻辑void mouseMoveEvent(QMouseEvent *event) override;// 重写鼠标按下事件处理函数,用于处理鼠标按下时的逻辑void mousePressEvent(QMouseEvent *event) override;private:// 指向 UI 界面的指针,管理界面控件Ui::Widget *ui;
};#endif // WIDGET_H

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Springboot整合抖音小程序获取access-token图片检测V3

抽取配置文件 appId以及secret需要自行在抖音开放平台获取 dy:appId: ttb0xxxxxsecret: 12a19a426xxxxxxxxxxxxx获取access-token 参照文档我们调用此接口需要先获取access-token 获取access-token官方文档地址 注意事项 client_token 的有效时间为 2 个小时&#xff0c;重复获…

CMake 教程(二)添加库

目录 一、实例一——创建库1、add_library2、target_include_directories()、target_link_libraries()2.1 target_include_directories()2.2 target_link_libraries() 3、实例操作 二、实例二——添加选项1、option()2、实例操作 在第一节 CMake 教程&#xff08;一&#xff09…

fastadmin 列表页表格实现动态列

记录&#xff1a;fastadmin 列表页表格实现动态列 后端代码 /*** 商品库存余额表*/public function kucunbalance(){$houseList (new House)->where([shop_id>SHOP_ID])->order(id desc)->field(name,id)->select();//设置过滤方法$this->request->filte…

LeetCode209.长度最小的子数组

题目链接&#xff1a;209. 长度最小的子数组 - 力扣&#xff08;LeetCode&#xff09; 1.常规解法&#xff08;会超时&#xff09; 可以先将数组的所有子数组求出来&#xff0c;计算其中元素的值&#xff0c;判断与目标值的大小关系&#xff0c;代码如下&#xff1a; public …

Ubuntu里彻底卸载UHD

查看已经安装的UHD版本uhd_find_devices&#xff0c;展示的是当前安装的 UHD 库版本所支持的设备信息&#xff0c;下载了多个版本的uhd但是又记不住安装的位置&#xff0c;想要把所有的uhd相关环境全都删掉&#xff0c;用下边这个命令看一下所有的uhd信息&#xff1a; apt lis…

在 Spring 中使用 @EhCache 注解作为缓存

文章目录 项目概况项目设置一个简单的 RESTful Web 服务Spring 整合 EhCache第 1 步&#xff1a;更新依赖项以使用 EhCache Spring 注解第 2 步&#xff1a;设置自定义缓存管理器第 3 步&#xff1a;配置 EhCache第 4 步&#xff1a;测试缓存 刷新缓存总结推荐阅读文章 EhCache…

Visual Studio的实用调试技巧总结

对于很多学习编程的老铁们来说&#xff0c;是不是也像下面这张图一样写代码呢&#xff1f; 那当我们这样编写代码的时候遇到了问题&#xff1f;大家又是怎么排查问题的呢&#xff1f;是不是也像下面这张图一样&#xff0c;毫无目的的一遍遍尝试呢&#xff1f; 这篇文章我就以 V…

k8s的微服务

ipvs模式 Service 是由 kube-proxy 组件&#xff0c;加上 iptables 来共同实现的 kube-proxy 通过 iptables 处理 Service 的过程&#xff0c;需要在宿主机上设置相当多的 iptables 规则&#xff0c;如果宿主机有大量的Pod&#xff0c;不断刷新iptables规则&#xff0c;会消耗…

QT:计算点到线段的垂线段的距离

描述 在Qt中&#xff0c;要计算一个点到一条线段的垂线段的长度&#xff08;即点到线段上最近点的距离&#xff0c;且这个点是垂直于线段的&#xff09;&#xff0c;你不能直接使用QVector2D::distanceToLine&#xff0c;因为这个方法计算的是点到直线的垂直距离&#xff0c;而…

2024-09-22 进程优先级,进程切换

一、僵尸状态 & 孤儿进程 进程退出&#xff1a;内核数据结构&#xff08;task_struct 维护&#xff09; 代码和数据&#xff08;直接释放&#xff09; 代码不会执行了首先可以立即释放的就是进程对应的程序信息数据。进程退出要有退出信息&#xff08;进程的退出码&#…

六西格玛设计DFSS方法论在消费级无人机设计中的应用——张驰咨询

本文基于六西格玛设计方法论&#xff0c;对消费级无人机的设计流程进行系统化研究&#xff0c;探讨如何通过六西格玛设计的理念、工具和方法提升无人机产品的设计质量和市场竞争力。文章从市场定位、客户需求分析出发&#xff0c;深入到关键KPI指标的制定&#xff0c;并逐步阐述…

【网络安全】漏洞案例:提升 Self-XSS 危害

未经许可,不得转载。 文章目录 Self-XSS-1Self-XSS-2Self-XSS-1 目标应用程序为某在线商店,在其注册页面的First Name字段中注入XSS Payload: 注册成功,但当我尝试登录我的帐户时,我得到了403 Forbidden,即无法登录我的帐户。 我很好奇为什么我无法登录我的帐户,所以我…

前端高频面试题2024/9/22(偏项目问题--通用后台管理系统)

文章目录 一.前端项目概述1.系统登录注册模块1.对注册的密码进行加密 &#xff08;使用加密中间件bcrypt.js&#xff09;2.登录成功后返回token3.前端登录页面有用到弹性布局&#xff0c;ref和reactive4.登录头像&#xff1a;文件上传 2.系统设置模块2.系统首页模块&#xff08…

使用electron+vue开发桌面应用

electron是什么 electron由Node.jsChromiumNative APIs构成。你可以理解成&#xff0c;它是一个得到了Node.js和基于不同平台的Native APIs加强的Chromium浏览器&#xff0c;可以用来开发跨平台的桌面级应用。 它的开发主要涉及到两个进程的协作——Main&#xff08;主&#x…

Java通过RAG构建专属知识问答机器人_超详细

RAG&#xff1a;融合检索与生成的文本精准生成技术 检索增强生成&#xff08;RAG&#xff09;是一种技术&#xff0c;它通过结合检索模型和生成模型来提高文本生成的准确性。具体来说&#xff0c;RAG首先利用检索模型从私有或专有的数据源中搜索相关信息&#xff0c;然后将这些…

编程练习7 5G网络建设

需要用到并查集的相关知识&#xff1a;可以参考如下链接 并查集详解&#xff08;原理代码实现应用优化&#xff09;-CSDN博客 #include<iostream> #include<algorithm> #include<vector>using namespace std;vector<int> split(string params_str) {…

ICT产业新征程:深度融合与高质量发展

在信息时代的浪潮中&#xff0c;每一场关于技术革新与产业融合的盛会都闪耀着智慧的光芒&#xff0c;引领着未来的方向。9月25日&#xff0c;北京国家会议中心内&#xff0c;一场聚焦全球信息通信业的顶级盛事——第32届“国际信息通信展”&#xff08;PT展&#xff09;隆重拉开…

【LwIP源码学习3】TCP协议栈分析——数据接收流程

前言 本文介绍代码在lwip的tcp_in.c文件中&#xff0c;主要介绍TCP协议栈中数据的接收流程。 正文 1、一个正常的TCP数据&#xff0c;首先会传入到 tcp_input(struct pbuf *p, struct netif *inp)函数&#xff0c;其中指针p指向传入的数据流。 2、从数据流中获取TCP头部 …

通过Express + Vue3从零构建一个用户认证与授权系统(二)数据库与后端项目搭建与实现

前言 上一篇完成了系统的相关设计文档的编写&#xff0c;本文将详细介绍如何一步步使用 TypeScript 和 Express 搭建一个模块化、类型安全的用户认证与授权系统&#xff0c;包括数据库设计、后端项目搭建、用户认证、角色与权限管理、错误处理以及 Swagger 文档集成。 项目准…

【ubuntu】ubuntu20.04安装cuda12.6与显卡驱动

目录 1.安装cuda12.6 2.安装显卡驱动 1.安装cuda12.6 https://developer.nvidia.com/cuda-toolkit-archive https://developer.nvidia.com/cuda-12-6-0-download-archive?target_osLinux&target_archx86_64&DistributionUbuntu&target_version20.04&target_…