Qt学习之组合套件及鼠标事件

QT 鼠标左键、中键、右键和滑轮事件及其鼠标位置获取 阅读详情

组合套件

        本部分实现一个自定义的控件,在主界面里面添加自定义的控件,具体步骤如下。

        1、首先在原本的项目中创建一个设计师界面类,如下图

         

         2、添加成功之后项目会增加三个文件,如下:

 

        3、将在 mydfine.ui 界面编辑类中创建自己的组合套件,创建一个简单的套件如下:

        4、将自定义套件嵌在主界面里面,需添先加一个控件,然后提示该控件自定义控件类(提升的控件类必须为提升类的子类),如下图:

         5、设定自定义控件中的两个子控件槽函数,实现控件相互的关联,如下图:

 鼠标事件

         该部分主要定义一个自定义的类去实现系统的控件里的部分功能。其实也就是将系统的控件提升为自己定义的类,注意:自定义类必须去继承要提升的控件类,否则控件提升会失败。具体步骤如下:

        1、在主界面里添加一个控件(GroupBox),如下图:

        2、实现将:鼠标进入空间内时设置鼠标其它形状,出空间时显示添加相应的操作。需要定义一个自定义类实现对应操作函数,然后将该控件提升为自定义类控件。需给工程添加一个hpp文件。如下图:

         3、cpp实现的代码如下:

void myGroupClass::enterEvent(QEvent *event)
{
    qDebug() << "鼠标进入事件" << event->type();

    // 设置进入空间设置鼠标形状
    QWidget::setCursor(QCursor(Qt::CrossCursor));
}

void myGroupClass::leaveEvent(QEvent *event)
{
     qDebug() << "鼠标出去事件" << event->type();
}
void myGroupClass::mouseMoveEvent(QMouseEvent *event)
{
    // 此时调用buttons函数,移动是一个过程(有可能左右键同时按下)
    if(event->buttons() & Qt::LeftButton)
    {
        QString slog = QString("鼠标移动: x=%1, y=%2, glx=%3, gly=%4").
                arg(event->x()).arg(event->y()).arg(event->globalX()).arg(event->globalY());
        qDebug() << slog;
    }
}

void myGroupClass::mousePressEvent(QMouseEvent *event)
{
    // 只有鼠标左键按下 才打印
    if(event->button() == Qt::LeftButton)
    {
        qDebug() << "鼠标左键按下!";
    }
}
保姆级教程:在 Qt 中为你的点云显示窗口添加鼠标交互(旋转/平移/缩放)与网格坐标轴 本文提供了一份详细的Qt点云可视化组件开发教程,重点讲解如何在Qt中实现点云显示的鼠标交互功能(旋转/平移/缩放)以及添加网格坐标轴。通过模块化设计和工程化封装,开发者可以快速集成交互式点云预览功能,无需深入OpenGL底层细节。教程包含环境配置、交互系统实现、可视化增强方案及性能优化策略,适合Qt开发者和三维数据处理工程师。 阅读详情

相关推荐

《Qt6 C++开发指南》深度解析:从核心机制到实战避坑

C++桌面应用开发中,跨平台框架的选择至关重要。Qt作为成熟的C++图形用户界面框架,其核心在于信号与槽机制、对象模型和事件系统,这些机制共同构成了响应式、可维护的软件架构基础。理解这些原理不仅能提升代码质量,也是应对复杂业务逻辑和多线程编程的关键。在工程实践中,掌握环境配置、模块管理和构建工具(如CMake)是项目成功的前提。本书针对Qt6这一最新技术栈,系统性地讲解了从基础控件、模型/视图架构到多线程、数据库集成等高级主题,并提供了详实的实战案例。对于开发者而言,无论是解决常见的“程序发布依赖”问题,还

weixin_33701617的博客 452

Qt 鼠标事件 与 键盘事件

简要的写下鼠标事件和键盘事件的使用方式,一学就会。

cpp_learner的博客 2773

Qt开发实战指南:从环境搭建到自定义控件开发

C++ GUI开发是构建跨平台桌面应用的核心技术,Qt框架以其强大的信号与槽机制和丰富的模块库成为该领域的首选。其元对象系统通过moc编译器实现运行时反射,为动态属性与事件处理提供基础,而基于对象树的内存管理模型则显著简化了C++资源管理。在工程实践中,合理选择Qt Widgets与QML决定了应用的性能与用户体验,Widgets适合复杂数据交互的桌面软件,QML则擅长动态UI与移动端开发。多线程编程需注意事件循环阻塞问题,可通过QThread与QtConcurrent实现异步处理。本文以K线图控件开发为例

weixin_30338497的博客 515

22081-11-16 鼠标双击事件和鼠标移动事件

鼠标双击事件和鼠标移动事件

Wwwwhpo的博客 414

基于Qt5与C++的扫雷游戏开发:从MVC架构到核心算法实现

面向对象编程(OOP)是构建复杂软件系统的核心思想,它通过封装、继承和多态来组织代码,提高可维护性和复用性。在图形用户界面(GUI)开发领域,模型-视图-控制器(MVC)架构是实现界面与逻辑分离的经典模式,能有效提升代码的清晰度和可测试性。Qt框架的信号与槽机制是实践事件驱动编程和实现MVC解耦的关键技术,它允许对象间进行松耦合通信。将这些原理应用于桌面应用开发,可以高效构建交互式软件。本文以开发一个经典的扫雷游戏为例,详细展示了如何运用C++的OOP思想设计`MineCell`、`MineField`等核

chulilang8944的博客 340

Qt5.9.4+OpenGL实战:手把手教你搭建UR3机械臂仿真环境(附完整配置流程)

本文是一篇详细的Qt5.9.4与OpenGL实战教程,手把手教你搭建UR3机械臂三维仿真环境。文章重点解决了Windows平台下Qt与OpenGL库的兼容性难题,涵盖从项目配置、GLUT库引入、着色器编写到实现3D坐标系渲染和第一人称相机控制的完整流程,为机器人开发与工业仿真可视化提供了清晰的实践路径。

ik678901234的博客 660

Qt判断鼠标移动的同时鼠标左键被按下

// QMouseEvent* e; if (e->type() == QEvent::MouseMove && (e->buttons() & Qt::LeftButton )) { // TODO }

WSG的博客--盛年不重来,一日难再晨.及时当勉励,岁月不待人. 4594

Qt简易画板项目实战指南

Qt是一个跨平台的C++应用程序框架,广泛用于开发具有图形用户界面的应用程序。它提供了一套丰富的API和工具,使得开发者能够快速设计和实现美观、功能强大的软件产品。Qt支持的平台包括但不限于Windows、MacOS、Linux、Android和iOS等。在Qt中创建一个自定义画板类时,通常需要让这个类继承自QWidget。这样做可以为自定义画板提供一个绘图表面,以及事件处理的基础。成员函数的声明应当包括构造函数、析构函数、绘图事件处理函数以及可能需要的其他自定义函数。Q_OBJECT。

weixin_35391606的博客 823

pyqt判断鼠标点击事件——左键按下、中键按下、右键按下、左右键同时按下等等

我用自定义的myLabel类继承pyqt中的QLabel类,然后在myLabel类中重载了鼠标按下事件函数,在这一函数中实现了判断左右中键按下的代码。from PyQt5 import QtCore, QtGui, QtWidgets, QtMultimedia class myLabel (QtWidgets.QLabel): # 自定义的QLabel类 def __init__...

日沉云起的博客 1万+

狄泰软件学院Qt开发课程:深入理解GUI程序原理

Qt是一个历史悠久的跨平台C++图形用户界面应用程序框架。最初由挪威的Troll Tech公司于1991年开始开发,它不仅是一个图形界面库,还是一套应用程序开发框架,提供了丰富的工具集,包括数据可视化、多媒体处理、网络编程等多方面的功能。自从被芬兰的科技巨头诺基亚收购之后,Qt变得更加成熟和稳定,如今它是Digia公司的一部分。由于Qt使用了高度模块化的C++库,因此它几乎可以在所有的平台上进行构建和运行。

weixin_36059856的博客 953

QT多个按键同时按下的实现方法

多个按键同时按下的实现方法,目前实现了左、右、上、下、Enter按键以及左+上+Enter的实现,读者可以自行拓展该程序。

从零实现Qt自定义按钮组件:掌握事件处理与绘图机制

在GUI开发中,自定义组件是构建独特用户体验和实现复杂交互的核心能力。其原理基于事件驱动模型,通过重写事件处理函数(如mousePressEvent、paintEvent)来响应用户操作并控制视觉渲染。这项技术的价值在于能够突破标准控件库的限制,打造风格统一、性能优化的专属界面元素,广泛应用于播放器、仪表盘、数据可视化等对UI有较高要求的场景。本文以【自定义按钮】开发为例,深入讲解如何利用Qt框架的【信号与槽】机制和绘图系统,构建一个具备完整状态管理(正常、悬停、按下、禁用)和视觉反馈的可复用组件,为开发任

chengyixian7877的博客 402

一条龙开发指南:MCP AI Agent 理论+项目实战开发你的MCP Server

MCP(Model Connection Protocol)是Anthropic于2024年推出的AI模型连接协议,旨在为AI模型提供开放、通用的标准化接口,类似于“USB-C”接口,使AI模型能够无缝连接各种数据源和工具。MCP通过标准化协议解决了AI系统集成中的碎片化问题,提升了开发效率和系统可靠性。开发者可以通过简单的配置,快速接入不同的MCP Server,实现AI模型的多样化应用。MCP支持多种协议,如Stdio、SSE等,并通过JSON-RPC格式进行数据传输。文章还以腾讯云代码助手为例,展示了

杨不易呀 3045

Qt Creator与QML入门:从环境配置到第一个交互式应用实战

在现代应用开发中,高效的UI框架和集成开发环境是提升生产力的关键。Qt Creator作为官方IDE,结合QML这一声明式UI语言,为构建高性能、美观的桌面与嵌入式应用提供了强大支持。其核心原理在于分离UI描述与业务逻辑,通过属性绑定和信号槽机制实现响应式界面,显著提升开发效率和动画流畅度。这一技术组合特别适合需要复杂交互动效的工业控制、嵌入式界面等场景,能有效解决传统Widgets方式UI更新繁琐的问题。本文将以图解方式,详细解析如何配置Qt Creator环境、创建首个QML项目,并深入探讨其运行机制与

weixin_34314962的博客 351

VMware 虚拟机里连不上网的五种解决方案

在VMware虚拟机里的虚拟机系统连接不上网络 首先,注意查看适配器选项里的网络连接这两个网络连接是否存在,如果不存在可以重新装一下VM 如果存在,连不上网 解决办法一: 虚拟机设置里,找到“网络适配器”,右边的网络连接选择“NAT 模式”,如果不行的话再linux系统。还是不行的话接着看第二种解决方案。 解决方法二: 可能原因是VMware NET Service...

墨轩 18万+

数据埋点系列 3|数据质量保证:验证、清洗与管理

数据质量管理是一个持续的过程,需要技术和组织文化的共同支持。通过本文,我们深入探讨了数据质量保证的各个方面,从基本的验证和清洗技术,到高级的监控和自动化策略。主动的而非被动的自动化的而非手动的持续的而非一次性的全面的而非局部的随着数据在决策中的作用越来越重要,确保数据质量将成为每个数据驱动型组织的核心竞争力。通过实施本文中讨论的策略和技术,你将能够建立一个强大的数据质量保证体系,为你的组织带来更可靠、更有价值的数据洞察。

一个8年大数据开发工程师的碎碎念 1463

Qt从安装到实战项目

①使用 delete :堆区: delete 的对象及其所有子对象,按顺序从父对象到子对象调用析构函数。(与创建顺序无关)栈区:不允许 delete。②先创建子对象,后创建父对象:堆区:先创建先析构,但最后释放内存,也就是先析构子对象。栈区:不允许,应用程序crush。③正常情况(不使用 delete 、无父对象子对象创建顺序问题):堆区:先析构父对象,但子对象先释放内存。栈区:先创建后析构,也可以理解为先析构子对象后析构父对象,析构的同时释放内存。(1)信号函数:①返回值是 void。

Jasper的博客 2895

Dzzoffice结合OnlyOffice 报错排查流程总结

首先访问 OnlyOffice 首页,如下图:出现上图仍旧不能说明你的 OnlyOffice 服务已经成功安装,我们需要启动 OnlyOffice 服务测试用例来检测,可以看到上图出现了两条命令,第一条命令是用来启动测试用例服务的,我们只需要在后台执行该命令即可,Windows环境是以管理员身份运行Windows PowerShell输入即可运行了。

小胡的博客 4597

Qt C++五子棋开发实战:从零构建桌面游戏应用

图形用户界面(GUI)开发是桌面应用构建的核心技术,其原理在于将程序逻辑与可视化组件分离,通过事件驱动模型响应用户交互。在C++生态中,Qt框架因其成熟的信号与槽机制、跨平台特性和丰富的组件库,成为开发高性能桌面应用的首选工具之一。其技术价值在于能够显著提升开发效率,同时保证应用的性能和原生体验。在游戏开发、工业软件、嵌入式界面等应用场景中,Qt广泛应用于需要复杂交互和实时响应的项目。本文以经典的五子棋游戏为例,通过实战项目演示如何利用Qt和C++实现完整的游戏逻辑、棋盘绘制、事件处理及人机对战功能,涵盖数

weixin_29008055的博客 345

IEEE Transactions on Industrial Informatics(TII) 投稿须知- Initial Submission

请注意,您可以在作者中心查看稿件的当前状态,如:在EIC办公室、分配给AE、AE邀请审稿人、AE指定审稿人、正在审稿、等待AE决定、等待EIC决定。为了确保公正的评审过程,我们要求在稿件中没有任何作者的身份(不包括作者的姓名、传记、隶属关系、求职信、签署的版权表格、识别脚注、致谢等)。如果你的手稿有很大一部分已经在会议上发表过,论文必须隐藏所有作者的身份,这样会议论文就可以被引用,就好像它是由不同的作者写的一样。请注意,通常你的技术成就是根据被引用的次数来评估的,而不是根据发表的论文数量。

loinleeai的博客 4427

PCout(n) -- STM32F103RCT6 位带操作

位带操作,sys.h,PCout,PAout,PAout

weixin_50212044的博客 4021

QT开发实例笔记1:QT概述

QT开发实例笔记1:QT概述 学习资料下载地址:https://pan.baidu.com/share/init?surl=fo6gh1FhpcxY-loNHIJ13w 密码:osfk 1.1.什么是QT:略 1.2 QT的安装: 略 1.3 QT5开发步骤及实例 本实例要实现的功能是,当用户输入一个圆的半径后,可以显示计算后的圆 的面积值。运行效果如图所示。 1.界面设计 步骤如下。 (1)...

王强的博客 951

本地快速部署谷歌开放模型Gemma教程(基于Ollama)

谷歌最近发布了新一代开源AI模型Gemma,此次发布的 Gemma 相比自家的 Gemini 更加轻量级,模型权重也一并开源。不仅可以在笔记本电脑上运行,而且还免费可商用,支持中文。运行速度飞快。

特立独行的博客 6716

Wireshark光标配置指南:解决Windows高DPI下的鼠标交互问题

Wireshark作为主流网络协议分析工具,其在Windows系统中的光标行为直接受DPI缩放、Qt渲染机制与系统UI策略共同影响。理解高DPI适配原理,可避免因光标卡顿、偏移或焦点丢失导致的分析效率下降;掌握注册表级HIGHDPIAWARE标记、QT环境变量控制及QSS样式注入等技术手段,能显著提升协议树悬停响应、双击过滤与右键追踪等核心交互体验。尤其在4K/2K多屏、远程桌面或AI辅助编程(如Cursor工具)混用场景下,正确配置光标不仅关乎显示清晰度,更决定键盘快捷键、自动化脚本及输入法兼容性的稳定性

weixin_30660027的博客 574

ISO21434 组织网络安全管理(二)

为了实现网络安全工程,该组织建立并维护网络安全治理和网络安全文化,包括网络安全意识管理、能力管理和持续改进。这涉及到指定针对本文档的目标进行独立审计的特定于组织的规则和过程。 为了支持网络安全工程,该组织实施了网络安全的管理系统,包括管理工具和应用质量管理系统。

qq_42357877的博客 1322

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

C++与QT桌面应用开发入门:从环境搭建到实战图片查看器

桌面应用开发是连接用户与系统功能的重要桥梁,其核心在于构建直观、响应迅速的图形用户界面(GUI)。在众多技术方案中,C++以其卓越的性能和底层控制能力成为高性能桌面应用的首选,而QT框架则通过其强大的信号与槽机制、跨平台特性和丰富的控件库,极大地简化了C++ GUI开发的复杂度。信号与槽作为QT的核心通信机制,实现了对象间松耦合、类型安全的交互,其背后的元对象系统(Meta-Object System)和moc编译器,是QT实现这一“魔法”的关键。这套组合的技术价值在于,它让开发者能在享受C++高性能的同时

weixin_30647065的博客 393

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

上一篇: Qt学习之QTreeWidget、QTableWidget
下一篇: Qt学习之定时器
码农诗人
博客等级 码龄11年 986粉丝 84原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值