qt 怎么检测鼠标在不在某个控件上

2023-11-06

方式一:推荐,感觉这种事件过滤器的方法捕捉比较敏感

记得安装事件过滤器

this->installEventFilter(this);
protected:
    bool eventFilter(QObject *obj, QEvent *event) override;
    //需要过滤的事件
    if (event->type() == QEvent::MouseMove)
    {
        QMouseEvent* mouseEvent = (QMouseEvent*)event;
        QPoint p = mouseEvent->pos();
        int x = m_LightAddrAndDmxList.value(m_iCurrentTablevie)->x();
        int y = m_LightAddrAndDmxList.value(m_iCurrentTablevie)->y();
        int w =m_LightAddrAndDmxList.value(m_iCurrentTablevie)->w();
        int h = m_LightAddrAndDmxList.value(m_iCurrentTablevie)->h();
       if(( x<p.x() && p.x()<w) && ( y<p.y() && p.y()<h))//控件相对于应用程序的坐标
        {
            return true;
        }
       
        //这里做你想做的事
        return true;

    }
    return QWidget::eventFilter(obj,event);

上面的函数还可以有一层,选择对应的你要哪个控件安装这个事件过滤器

比如:

    //需要过滤的事件
    if(obj == ui->lineEdit)//监控的对象
    {
        if (event->type() == QEvent::MouseMove)
        {
            ……
            return true;

        }       
    }
     return QWidget::eventFilter(obj,event);
    

方式二:重写鼠标事件

void mouseMoveEvent(QMouseEvent *ev);

如果控件有父亲,记得也要设置鼠标追踪 

    //设置默认追踪鼠标,否则在触发鼠标移动时,必须先点一下才有效
    this->setMouseTracking(true);
void MyLabel::mouseMoveEvent(QMouseEvent *ev)
{
        //鼠标的位置
        int i=ev->x();
        int j=ev->y();
}

上面两种方法可以动态的监听鼠标是不是在某个控件上

方式三:静态

if(!ui->lineEdit->geometry().contains(this->mapFromGlobal(QCursor::pos())));

方式四:静态:

if(ui->lineEdit->underMouse)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

qt 怎么检测鼠标在不在某个控件上 的相关文章

  • 如何在按下托盘图标菜单操作时执行功能?

    int main int argc char argv QApplication oApp argc argv QAction action1 QMenu menu QSystemTrayIcon TrayIcon QIcon favico
  • 如何创建QWidget的屏幕截图?

    我在 Qt Creator 中做作业 在其中绘制 QWidget 并且需要保存此 QWdiget 的某些部分 我试图解决这个问题 QPixmap pixmap pixmap copy rectangle rectangle is part
  • 如何使用 Qtimer 添加 1 秒延迟

    我目前有一个方法如下 void SomeMethod int a Delay for one sec timer gt start 1000 After one sec SomeOtherFunction a 这个方法实际上是一个附加到信号
  • 错误 LNK2001:无法解析的外部符号 __CxxFrameHandler3

    我正在将 Qt 从 VS 2013 迁移到 Qt 5 10 1 到 VS 2015 出现以下多个链接错误 error LNK2001 unresolved external symbol CxxFrameHandler3 error LNK
  • 使用 Visual Studio 2013 构建 Qt 5.2.1 的静态版本

    几天来我一直在尝试使用 Visual Studio 2013 构建 Qt 的静态版本 我就是不明白我做错了什么 System Windows 7 64 位 Visual Studio 2013 仍安装 Visual Studio 2012
  • 为 Windows 98 编译 Qt

    我需要支持 Windows 98 Qt 文档声称这是可能的 但没有说明 Qt 4 6 的分布式二进制文件不能在 Win98 上运行 而且我采样的大多数 Qt 应用程序也不能在 Win98 上运行 对于几个确实在 98 上运行的应用程序 我询
  • QCombobox 向下箭头图像

    如何更改Qcombobox向下箭头图像 现在我正在使用这个 QSS 代码 但这不起作用 我无法删除向下箭头边框 QComboBox border 0px QComboBox down arrow border 0px background
  • 与 Qt 项目的静态链接

    我有一个在 Visual Studio 2010 Professional 中构建的 Qt 项目 但是 当我运行它 在调试或发布模式下 时 它会要求一些 Qt dll 如果我提供 dll 并将它们放入 System32 中 它就可以工作 但
  • 如何在 QTabWidget Qt 中展开选项卡

    我有一个QTabWidget像这个 但我想展开选项卡以 填充 整个小部件宽度 如下所示 我怎样才能做到这一点 我在用Qt 5 3 2 and Qt 创建者 3 2 1 Update 我尝试使用setExpanding功能 ui gt myT
  • 即使在可访问性中勾选应用程序,AXIsProcessTrustedWithOptions 也不会返回 true

    As this question https stackoverflow com questions 17693408 enable access for assistive devices programmatically on 10 9
  • Qt:测量事件处理时间

    我想测量我的应用程序中的哪些事件在主线程中需要很长时间才能执行 阻塞 GUI 或者至少是否有任何事件花费的时间超过 比如说 10 毫秒 显然 我对需要很长时间的任务使用线程和并发 但有时很难在其他线程中放入的内容和可以保留在 GUI 中的内
  • QTimer 一点也不准确?

    运行在 Windows7 64 位机器上 具有非常强大的 CPU 8 核 16 线程 我使用 QTimer 以 50Hz 触发函数调用 但我最终得到了 30Hz 函数调用本身肯定需要不到 10 毫秒才能完成 整个过程发生在一个单独的线程中
  • Qt:在多个布局中使用一个小部件

    我有一个 QTabBar 所有选项卡都应该有相同的小部件 layout1 gt addWidget w layout2 gt addWidget w 然而打电话addWidget第二次导致该小部件在第一个布局中消失 有没有办法使用一个小部件
  • 无法在带有 QSortFilterProxyModel 的 QTreeView 的点击信号中使用 itemFromIndex

    我有一个 QTreeView 在视图和 QStandardItemModel 之间有一个 QSortFilterProxyModel 来对树进行排序 然后我想通过 clicked 信号对视图中的点击进行操作 模型 视图的设置类似于 mymo
  • Qt - 无法让 lambda 工作[重复]

    这个问题在这里已经有答案了 我有以下功能 我想在其中修剪我的std set
  • Qt - 设置不可编辑的QComboBox的显示文本

    我想将 QComboBox 的文本设置为某些自定义文本 不在 QComboBox 的列表中 而不将此文本添加为 QComboBox 的项目 此行为可以在可编辑的 QComboBox 上实现QComboBox setEditText cons
  • 如何检测QTableView中的双击

    我正在使用 PyQt 创建 GUI 应用程序 在继承自 QTableView 的视图中 需要检测用户双击行时选择的行 该表可以排序 但不能编辑 我该怎么做 注意 尝试了 doubleClicked int 信号 它是由鼠标按钮发出的 而不是
  • Qt 是否已经有了自己的 new 和 delete 运算符?

    我正在使用一个QGraphicsScene小部件并在其上显示一些点QGraphicsRectItem 这意味着要拨打很多电话new addItem 当出现时 并且removeItem delete摆脱未使用的点 当然 对于性能问题 我已经实
  • QML 连接:不推荐使用连接中隐式定义的 onFoo 属性

    升级到 Qt 5 15 时收到以下错误消息 QML Connections Implicitly defined onFoo properties in Connections are deprecated Use this syntax
  • Qt 5.3 无法使 QCompass (QSensor) 在 Windows 8.1 上工作

    我无法让传感器在我的 Asus Transformer T100 上工作 磁力计和指南针无法启动 并且我从加速度计获得假值 始终 x 0 y 9 8 z 0 即使使用我的笔记本电脑 我总是得到相同的结果 第一段文字编辑 Initialisa

随机推荐

  • 多点双向重发布

    实验题目 要求 1 两个协议间进行多点双向重发布 2 R7的环回没有宣告在OSPF协议中 而且是后期重发布进去 3 解决环路 所有路径选择最优 且存在备份 实验拓扑图 IP地址与ospf和rip的配置 R1 int g0 0 0 ip ad
  • 华为OD机试真题-计算网络信号 【2023.Q1】

    题目内容 网络信号经过传递会逐层衰减 且遇到阻隔物无法直接穿透 在此情况下需要计算某个位置的网络信号值 注意 网络信号可以绕过阻隔物 array m n 的二维数组代表网格地图 array i j 0代表i行j列是空旷位置 array i
  • 开源协议比较:BSD、Apache、GLP、LGLP、MIT

    BSD开源协议 original BSD license FreeBSD license Original BSD license BSD开源协议是一个给于使用者很大自由的协议 基本上使用者可以 为所欲为 可以自由的使用 修改源代码 也可以
  • Python报错UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte的最新解决办法2022-09-30

    合并txt文件内容时候 Python报错UnicodeDecodeError gbk codec can t decode byte 这个错误是做NLP的小伙伴常见的一个错误 报错原因是读取的文件中有中文 网上找到的解决办法 将 with
  • ProtocolBuffers-3.0.0 For Objective C 的快速集成指南

    一 前言 最近调研 Google的Protocol Buffer 在网上看了几篇相关博客 发现他们讲的都比较复杂 所以就想写一篇简单点的文章 配置环境 mac OS 10 11 5 Xcode7 3 二 Protocol Buffer简介
  • 汉诺塔(Tower of Hanoi)--------递归思路

    汉诺塔问题简介 有三根相邻的柱子 标号为A B C A柱子上从下到上按金字塔状叠放着n个不同大小的圆盘 要把所有盘子一个一个移到柱子C上 并且每次移动 同一根柱子上都只能是大盘子在下 小盘子在上 请问至少需要多少次移动 汉诺塔问题分析 1
  • 剑指 Offer 57. 和为s的两个数字--双指针问题

    这道题有点像之前一道用hashmap做的乱序数组求两数之和等于指定数的问题 两数相加 时间复杂度小于 O n2 而今天这道题 用hashmap也可以做出 但是空间复杂度实在太大 又因为它是排序好的数组 所以二分法或者双指针法比较简单 双指针
  • DRF视图组件

    目录 视图 APIView APIView与View的不同之处 GenericAPIView 通用视图类 类属性 类方法 基于APIView写五个接口 基于GenericAPIVIew写5个接口 五个视图扩展类 ListModelMixin
  • c/c++位字段

    位字段 定义 位字段是C语言中一种存储结构 不同于一般结构体的是它在定义成员的时候需要指定成员所占的位数 所有基础的数据类型 最大的也不过 10 个字节 我们可以自定义的数据类型 struct 通过把若干类型组合在一起 让一种类型可以大很多
  • linux自动安装trojan客户端的shell脚本

    bin bash 安装Trojan客户端 echo 开始安装Trojan客户端 curl O https github com trojan gfw trojan releases download v1 17 0 trojan 1 17
  • Headless Browser Testing With Xvfb

    Jan 09 15 javascripttesting These days when the phrase headless browser is mentioned you immediately think of PhantomJS
  • 【Python基础】用Cython优化Python代码性能

    Cython是一个编程语言 它结合了Python的简洁性和C语言的性能 本文将深入探讨Cython的基本原理 如何将其应用于Python项目 以及如何使用Cython优化Python代码的性能 文章目录 1 Cython简介 2 Cytho
  • getopt使用样本/模板

    this is the sample of use of getopt funtion include
  • python可以进行软件开发吗,python可以做软件开发吗

    本篇文章给大家谈谈python可以进行软件开发吗 以及python可以做软件开发吗 希望对各位有所帮助 不要忘了收藏本站喔 1 python可以开发什么软件 主要可以做小程序 爬虫程序 用于系统编程等等还是很广泛的 Python的应用领域分
  • element-ui中el-table的错位问题解决,以及新的错位问题的出现(与el-tabs相关)

    element ui的表格错位问题 只出现在带有设置了fixed的列的el table中 这是一个渲染机制的问题 通过调用一遍doLayout方法就可以解决 但是套在el tabs里的el table 就是另一种情况了 简单错位 这是我瞎起
  • vr设备的服务器性能指标,让我们一起聊聊VR眼镜技术参数

    时下最炙手可热的数码产品无疑就是VR眼镜了 而作为影响VR体验的重要一部分 VR眼镜技术参数也成为了很多人讨论的焦点 目前市面上的VR设备良莠不齐 具体什么样的VR眼镜技术参数规格才是优秀的产品 而这些VR眼镜技术参数对用户们的体验来说 又
  • 同步代码块synchronized的使用与解析

    Java 同步块 synchronized block 用来标记方法或者代码块是同步的 Java同步块用来避免竞争 本文介绍以下内容 Java同步关键字 synchronzied 实例方法同步 静态方法同步 实例方法中同步块 静态方法中同步
  • 量化择时——平均K线图双均线策略(第1部分—策略效果测算)

    文章目录 平均K线图概述 OHLC的计算方式 K线图走势对比 平均K线图阴阳线交易策略 交易规则 测算结论 双均线策略测算 测算规则 测算结论 平均K线图概述 平均K线图是蜡烛图的一种分支 在日本 Heikin意味着 平均 Ashi意味着
  • python root:code for hash md5 was not found.错误

    可能还会伴随一大堆其他错误 ERROR root code for hash md5 was not found Traceback most recent call last File usr local Cellar python 2
  • qt 怎么检测鼠标在不在某个控件上

    方式一 推荐 感觉这种事件过滤器的方法捕捉比较敏感 记得安装事件过滤器 this gt installEventFilter this protected bool eventFilter QObject obj QEvent event