QT界面操作1:如何跟踪鼠标位置?
python GUI库图形界面开发之PyQt5信号与槽事件处理机制详细介绍与实例解析_python_脚本之家 (jb51.net)
一、可预见事件
事件很多,窗口、鼠标、键盘、时间等的些许改变,都足可以构成一个事件。有些事件是可预料的如按钮按下、鼠标移动等,可以预先建立程序入口。所有的QWidget都存在可预见事件。如下:
- 键盘事件:按键的按下与松开
- 鼠标事件:鼠标指针的移动,鼠标按键的按下与松开
- 拖放事件:用鼠标进行拖放
- 滚轮事件:鼠标滚轮滚动
- 绘屏事件:重绘制屏幕的某些部分
- 定时事件:定时器到时
- 焦点事件:键盘焦点移动
- 进入和离开事件:鼠标指针移入Widget内,或者移出
- 移动事件:Widget的位置改变
- 大小改变事件:widget的大小改变
- 显示和隐藏事件:widget显示与隐藏
- 窗口事件:窗口是否为当前窗口
如:mousePressEvent(),keyPressEvent(),paintEvent()
二、概括性事件--QObject.event
概括性事件,是指凡是有事件触发,这个事件必然被触发,而且是最早触发。这个道理是,事件触发首先是操作系统的某个中断被触发,究竟是哪一个中断事件,需要进一步判别。这个概括性事件就是QObject.event()接口。
因此,有些事件可以超载对应事件虚函数实现。当然,也可以超载QObject的Event得以实现。
三、鼠标追踪
本代码首先解决一个小问题,如何追踪鼠标的位置?本篇介绍可预见事件超载实现。
3.1 基本代码
1)导入函数包
import sys
from PyQt5.QtCore import (QEvent, QTimer, Qt)
from PyQt5.QtWidgets import (QApplication, QMenu, QWidget)
from PyQt5.QtGui import QPainter
2)定义一个窗口
class Widget(QWidget):def __init__(self, parent=None):super(Widget, self).__init__(parent)self.resize(1200, 800)self.move(100, 100)#设置标题self.setWindowTitle("Events")
3)运行所定义窗口
if __name__ == "__main__":app = QApplication(sys.argv)form = Widget()form.show()app.exec_()
3.2 追加鼠标位置追综功能
在以上的widget追加一个函数:
def mouseMoveEvent(self, event):#如果没有鼠标双击,执行globalPos = self.mapToGlobal(event.pos())x = globalPos.x()y = globalPos.y()print(x,y)
以上程序在鼠标按下后移动,可以捕获移动位置,但鼠标不按不可以跟踪,如何改,才能不按下鼠标也能追踪?
答案:在
class Widget(QWidget):
def __init__(self, parent=None):
上追加:
self.setMouseTracking(True)
就可以了。
QT界面操作1:如何跟踪鼠标位置?相关推荐
- 【Linux开发】【Qt开发】Qt界面键盘、触摸屏、鼠标的响应设置
USB键盘 经过一番搜索,发现对Qt键盘的支持主要关系到两个方面: 1. 键盘类型确定: 4.7以前的Qt版本,如果是PS2圆孔键盘,Qt编译时需加上选项:-qt-kbd-vr41xx(未测试):如果 ...
- QT5界面操作2:如何用状态栏显示鼠标坐标
在文 QT界面操作1:如何跟踪鼠标位置?实现了鼠标位置捕获,这里用两种方式显示鼠标坐标 1)状态栏显示 2)窗口刷新显示 先看如何获取鼠标位置的代码. import sys from PyQt5.Q ...
- QT中鼠标位置获取问题之event-globalPos()与pos()函数
QT中鼠标位置获取问题之event->globalPos()与pos()函数 标签: Qt 2015-01-03 19:41 820人阅读 评论(0) 收藏 举报 分类: Qt 版权声明:本文为 ...
- QT界面:重写鼠标事件/实时显示Label中鼠标位置
为了在QT UI界面的状态栏实时显示鼠标在Label中的位置,需要重写鼠标事件MouseMoveEvent(). 但是MouseMoveEvent为了不过多消耗资源,默认需要鼠标按下捕捉到.因此需要在 ...
- 【KRKR进阶实用教程】1、捕获鼠标位置——存档界面制作
■注意事项■ ※如果你刚接触krkr,那么阅读前强烈推荐先阅读水螅姐的教程把KAG等基本知识学明白:猛击这里 ※本文建立在读者已经读过一遍krkr自带tjs文档的前提下而撰写,所以不对其中出现的一些在 ...
- Qt界面优化:鼠标双击特效
Qt界面优化:鼠标双击特效 文章目录 Qt界面优化:鼠标双击特效 一.双击特效 二.使用步骤 1. .h部分 2. .cpp部分 注意点 gif动图的背景必须是透明的!!! 总结 一.双击特效 二.使 ...
- QT编写实现图片的幻灯片播放、自适应显示、缩放(以鼠标位置为中心进行缩放)、拖动、重置、显示鼠标位置像素坐标及RGB值、播放GIF动画、截图保存、批量保存、拖入文件夹遍历所有文件
这个图片查看器功能很多,是我花了不少心思,不断优化,不断添加功能的成果: 1.能打开并显示所有常用图片格式文件,显示鼠标位置像素坐标及RGB值 2.能缩放,拖动图片,可以以鼠标为中心滚动滚轮进行缩放 ...
- qt 取textedit 鼠标位置处单词_开源国产优麒麟20.04 V3发布:多达73处改进
4月24日,优麒麟20.04 LTS正式发布,提供5年长期技术支持,默认搭载最新的Linux 5.4系统内核.全新的UKUI 3.0桌面环境预览版,同时支持x86.ARM64 CPU体系结构. 今天, ...
- python鼠标位置_用python3 返回鼠标位置的实现方法(带界面)
点击获取后,返回2s后的鼠标位置,显示在文本框 (需要用pip命令安装所需的的库) (pip install 模块名 比如 安装pyautogui 模块 在cmd里面输入: pip install p ...
最新文章
- 单片机一个月能入门么?单片机工程师能干到多少岁?
- 模组使用之dB、dBm、dBw、dBu、dBc的含义和之间的关系
- 工作方法及总结(给自己的忠告)
- Qt对象类型转换(char* int与Qstring间的转换)
- 解决No version of NDK matched the requested version问题
- The proctime attribute ‘rowtime‘ must not replace an existing field.
- iOS NSTextAttachment - 图文混排
- asp.net 发送邮件函数两则
- 如果把钱存入余额宝时,所有人都在受益,那么谁在亏损呢?
- 使用高德地图打车软件实现_强化学习:使用Q学习来打车!
- Pandas统计分析中(数据计算、数据格式化、数据分组统计、数据移位、数据转换、数据合并、数据导出)
- STM32 USB主机通信连接中断过程
- Debian 10截图小工具 flameshot
- java程序员生日祝福语_给程序员的一句话祝福语
- 程序化广告实战分享系列 - 程序化广告的前世今生及趋势(入门)
- 9820E ClassicHome分析总结
- 基于PHP+MySQL的高校实验室预约管理系统
- 史上最全 人工智能AI、黑客电影、网络安全题材电影最全合集
- 现在的你迷茫吗?是否还在做毕业后的高薪梦?你相信彩虹海吗?
- 机器学习入门基础(二)