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

一,问题描述

☀️之前碰到过的一个问题,现在分享出来:想在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️⃣另外,你自己编写的事件响应函数确保没问题,程序其他地方也没问题!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值