QT Mainwindow下指定控件的setMouseTracking(true)和mousemoveevent函数失效-问题解决

news2024/11/15 13:33:00

目录:

  • 一,问题描述
  • 二,解决方法
    • 2.1解决依据
    • 2.2方法实操
  • 三,参考资料

一,问题描述

☀️之前碰到过的一个问题,现在分享出来:想在qt哪里搞个鼠标移动在控件显示的图片上,然后实时显示对应位置的像素值的demo,但是遇到了小问题,比如我已经在初始的时候,已经将对应控件setMouseTracking(true)调用了,但还是对应的控件mousemove事件响应方法还是使用不了,需要边点击边移动鼠标才行(press 和move同时执行才行),与熟悉的c# 的界面类别消息机制不同,对于qt ,特别是mainwindow情况下,编写对应的事件方法要尤为注意一些小细节,比如像今天遇到的问题。

  • 本文想表达的是,一些成败细节的方法往往是点睛之笔!
  • maindown方式不好用,建议用widget窗口!

二,解决方法

2.1解决依据

  • 1️⃣之所以,只调用对应控件的setMouseTracking(true)或同时也调用ui的setMouseTracking(true)也没用,因为在mainwindow情况下,而且你可能重写mainwindow的鼠标响应事件;
  • 2️⃣最重要的一点,在mainwindow中,如果想要处于其中的某个控件也同时拥有完整的事件响应,必须将从控件到主窗口的每一级的父对象都依次调用setMouseTracking(true)函数;
  • 3️⃣另外,你自己编写的事件响应函数确保没问题,程序其他地方也没问题!

2.2方法实操

1️⃣如果知道对应控件的每一级父对象呢?我们可以在qt设计器中,看到程序或窗体中每个控件的级联和包含关系,可以以此来对控件的各个父对象调用setMouseTracking(true)方法,如下:
在这里插入图片描述

2️⃣另外,除了上面可以显示比较明显的包含关系,但上面还不够,因为对于特殊的控件,他有可能还有别的父对象,我们可以在qdebug用对象.parent.objectname输出对应的信息,寻花问柳出来😄
对于一些特殊控件,比如qtabwidget控件的某一项tab页,他的父对象竟然叫"qt_tabwidget_stackedwidget",在ide上面打代码都不出来( ui->tabshow2->parent()->setMouseTracking(true);),找不到qt_tabwidget_stackedwidget的引用,所以对此,正确的引用方式是 ui->tabshow2->parentWidget()->setMouseTracking(true);用的是parentwidget方法才行,parent方法只能用于索引信息,不能用于代码引用对象,这点要记得!

3️⃣下面给出界面和控件的级联关系,成功调用后代码编写:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三,参考资料

  • 解决QMainWindow下setMouseTracking在指定控件下无响应问题(PyQt5+Qtdesigner
  • QT setMouseTracking没反应
  • Qt mouseMoveEvent不执行情况

最后,文中若有不足,敬请批评指正!!!

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

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

相关文章

[数据集][目标检测]红外场景下车辆和行人检测数据集VOC+YOLO格式19069张4类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):19069 标注数量(xml文件个数):19069 标注数量(txt文件个数):19069 标…

一文带你画PCB板,有手就行

背景 最近写Autosar网络唤醒功能,想在实际硬件上验证,但是市面上没有找到板子验证,只能找人帮忙画PCB板。但是这里遇到比较大的问题,1、整个周期会比较长,板子不太可能一次就能完成,中间会出现修改的地方&…

C#/.NET/.NET Core技术前沿周刊 | 第 1 期(2024年8.12-8.18)

前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录、追踪C#/.NET/.NET Core领域、生态的每周最新、最实用的技术文章、社区动态、优质项目和学习资源等。让你时刻站在技术前沿,助力技术成长与视野拓宽。 欢迎投稿,推荐…

【蓝牙协议栈】【BLE】【GATT】精讲GATT Profile架构(图文并茂精华版)

目录 1. 蓝牙BLE通用属性协议(GATT) 2.GATT角色介绍 3.GATT 层级和Profile架构 4. GATT Server架构(重点内容) 5. Characteristic架构(重点内容) 6. (Characteristic Properties)特性属性详解&#x…

一款免费的目录以及文件对比工具,替代Beyond Compare

Beyond Compare是一款功能强大的文件对比工具,但是由于是付费软件,很多没有购买的企业用户无法使用。CCompare就是一款替代Beyond Compare的免费方案,一款来自中国的可替换beycond compare, 免费使用的代码同步对比工具。 CCompare 是一款功…

【科研绘图】【分条热力图】:附Origin详细画图流程 + 案例分析

目录 No.1 理解分条热力图 No.2 画图流程 1 导入数据,绘制图形 2 设置绘图细节 3 色阶控制 4 设置坐标轴 5 效果图 No.3 案例分析 1 案例一 2 案例二 No.1 理解分条热力图 分条热力图,基于数据映射和颜色编码,是在热力图的基础上进…

聚星文社下载地址

聚星文社绘唐科技是一个文化传媒公司,以绘制唐朝相关的科技设备和场景为主题。该公司致力于通过插画、动画、游戏等形式,栩栩如生地展现唐朝时期的科技发展和生活场景。 聚星文社下载地址https://iimenvrieak.feishu.cn/docx/ZhRNdEWT6oGdCwxdhOPcdds7n…

unity Standard Assets资源商店无法安装解决方案

Unity游戏开发 “好读书,不求甚解;每有会意,便欣然忘食。” 本文目录: Unity游戏开发 Unity游戏开发unity中国 嗨嗨嗨,我来啦。 这几天的川渝之旅已经圆满结束了,今天开始正常给大家更新: Unity…

TiggerRamDisk绕过激活界面,支持最新iOS17.4.1绕过

iOS15等待越狱的日子实在太久了!checkra1n越狱目前还未发布iOS15系统越狱。 可很多朋友不小心或者大意已经升级到了最新iOS15系统。一般来说这并没有什么大碍,但如果是绕过激活的设备,或者忘记账户密码而刷机的设备,就会面临无法…

【计算机组成原理】强化部分笔记

第一章 计算机系统概述 考点1 计算机系统层次结构 1.计算机发展历程已从大纲中删去 2. 3.指令和数据都存放在存储器中,通过指令周期不同来区分(比如取指周期和执行周期) 现代的计算机以存储器为中心 4. 5. 6.汇编语言:STORE、L…

[云计算] 虚拟化笔记

原著: 韩冰,[云计算课程], 有删改。 目的 对 IT 资源简化,用户通过标准接口访问。 资源是提高一定功能的实现 。可以是硬件, 如CPU, 也可以是软件。 发展史 1961 IBM CPU 分时间片, 一个CPU 虚拟化为多…

数据结构: 树状数组

在OI赛事中,数据结构是非常重要的一个内容,更是有人说过,算法数据结构程序: A l g o r i t h m D a t a AlgorithmData AlgorithmData S t r u c t u r e P r o g r a m m i n g StructureProgramming StructureProgramming 接下来&#…

Python | Leetcode Python题解之第373题查找和最小的K对数字

题目: 题解: class Solution:def kSmallestPairs(self, nums1: List[int], nums2: List[int], k: int) -> List[List[int]]:m, n len(nums1), len(nums2)# 二分查找第 k 小的数对和left, right nums1[0] nums2[0], nums1[m - 1] nums2[n - 1] 1…

【大模型从入门到精通40】LLM部署运维(LLM Ops)使用Kubeflow Pipelines掌握LLM工作流2

这里写目录标题 使用Kubeflow Pipeline组件:输出与任务对象理解PipelineTask对象通过PipelineTask.output访问输出数据组件函数中的关键字参数实用贴士 在Kubeflow Pipelines中链接组件:传递输出定义依赖组件传递组件输出常见错误:传递正确的…

【Python进阶(十)】——Matplotlib基础可视化

🍉CSDN小墨&晓末:https://blog.csdn.net/jd1813346972 个人介绍: 研一|统计学|干货分享          擅长Python、Matlab、R等主流编程软件          累计十余项国家级比赛奖项,参与研究经费10w、40w级横向 文…

Gradle安装使用

下载安装包 Gradle | Releases 解压后在.bash_profile添加环境变量 更新并检查 source ~/.bash_profile

计算机的错误计算(七十二)

摘要 讨论大数的余割函数 csc(x)的错误计算。 例1. 在 Excel 中计算 csc(1234567.89) . 直接贴图: 然而,正确值是 -0.2023325675399672e1(ISRealsoft 提供)。 Excel 的输出中有 6位错误数字。 例2. 在 Maple中计算 csc(32^58…

回归预测|基于北方苍鹰优化极端梯度提升树的数据回归预测Matlab程序NGO-XGBoost多特征输入单输出

回归预测|基于北方苍鹰优化极端梯度提升树的数据回归预测Matlab程序NGO-XGBoost多特征输入单输出 文章目录 前言回归预测|基于北方苍鹰优化极端梯度提升树的数据回归预测Matlab程序NGO-XGBoost多特征输入单输出 一、NGO-XGBoost模型1. 理解XGBoost2. 理解NGO优化算法3. NGO-XGB…

Kmeans算法原理及Python实现

K-means算法是一种广泛使用的聚类算法,其原理相对简单且易于实现,属于无监督学习的一种。以下是对K-means算法原理的详细解析: 一、基本思想 K-means算法的基本思想是将数据集划分为K个簇,使得每个簇内的数据点尽可能相似&#x…

从0到1使用webpack搭建react脚手架

背景 好多前端童鞋工作多年依然不会使用webpack搭建react脚手架,本文就介绍下如何从零开始搭建一个属于你自己的前端脚手架,提高自己的工程化实力,同时也提高团队的开发效率。 一、基础配置 目标:可以启动最简单的react项目 初…