Python学习笔记:Pyqt5鼠标键盘事件处理

2023-05-16

import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *


class windows(QMainWindow):
    def __init__(self):
        super(windows,self).__init__()
        self.setWindowTitle('事件机制')
        self.setGeometry(600,400,800,600)

        self.setMouseTracking(True)                  #设置鼠标自动跟踪

        self.setCursor(Qt.CrossCursor)              #   ArrowCursor(标准箭头)、upArrowCursor(向上箭头)、 CrossCursor(十字光标)、Waitcursor (沙漏)
        #self.unsetCursor() - 取消设置的鼠标形状。
        #cursor() - 返回当前鼠标形状的QCursor对象,。


    def mouseMoveEvent(self, event):
        print('鼠标按移动')
        print(event.pos(),event.globalPos())          #返回值分别为控件的整数坐标值 和 屏幕的整数坐标值
        print(event.windowPos(),event.screenPos())    #返回值分别为控件的浮点坐标值 和 屏幕的浮点坐标值

    def mouseReleaseEvent(self, event):
        key_name = event.button()
        print(key_name, '按键松开 ')

    def mouseDoubleClickEvent(self, event):
        print('鼠标按键双击')

    def mousePressEvent(self, event):
        key_name = event.button()
        print(key_name,'鼠标按键按下')
                                                        #Qt.NoButton            - 0 -
                                                        #Qt.LeftButton          - 1 - 按下鼠标左键;
                                                        #Qt.RightButton         - 2 - 按下鼠标右键;
                                                        #Qt.MiddleButton        - 4 - 按下鼠标中键;
    def enterEvent(self, event):                        #移入控件事件
        print('鼠标进入控件')

    def leaveEvent(self,event):                         #移出控件事件
        print('鼠标移出控件')

    def wheelEvent(self, event):                        #鼠标滚轮事件
        print(event.angleDelta())                       #滚轮转过的数值,单位为1/8度

        def keyPressEvent(self, event):
        key_name = event.key()
        print('文本', event.text())
        print('类型', event.type())
        print('key值', event.key())
        if key_name ==Qt.Key_F1:
            print('F1按下')


    def keyReleaseEvent(self, event):
        print('键盘松开')

    def paintEvent(self,event):
        print('重绘')


if __name__ == '__main__':
    app = QApplication(sys.argv)
    main = windows()
    main.show()
    app.exit(app.exec())

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

Python学习笔记:Pyqt5鼠标键盘事件处理 的相关文章

  • QT学习第一步 QT下载及安装详细步骤

    下载地址 xff1a QT官方网站 QT下载安装地址 选择的这个 xff1a QT下载安装地址 文件名称选择 xff0c 图中红色箭头详解 xff1a 选择archive QT开发工具安装包文件夹 xff1a 进入之后显示的文件夹 xff1
  • RT-Thread临界段的保护

    临界段的保护 什么是临界段 临界段 xff0c 用一句话概括就是一段在执行时不能被中断的代码段 在RT Thread中 xff0c 临界段最常出现的场景就是对全局变量的操作 xff0c 全局变量就好像是一个靶子 xff0c 谁都可以对其开枪
  • Oracle中expdp与impdp--导入和导出操作步骤

    Oracle expdp 与impdp 一 根据用户导出导入数据 用户和表空间都相同 这些命令必须在Oracle 工具执行 create directory dpdata1 as E oracle home product backup 这
  • 编写Linux设备驱动程序的注意事项

    编写设备驱动程序的注意事项 应用程序开发与驱动程序开发的差异 在Linux上的程序开发一般分为两种 xff0c 一种是内核及驱动程序开发 xff0c 另一种是应用程序开发 这两种开发种类对应Linux的两种状态 xff0c 分别是内核态和用
  • 单片机STM32F103RB,BLDC直流电机控制器设计,原理图、源码和电路方案

    基于STM32 BLDC直流无刷电机控制器设计 xff0c 并附上原理图和源码等 源代码是基于免费开源CoOS UCOS类似 操作系统上写的 xff0c 在学习无刷电机的控制同时还能学习到操作系统的知识 同时提供用Matlab的GUI编写的
  • 构建嵌入式Linux操作系统 Linux操作系统的介绍

    目前流行的嵌入式操作系统有Linux WinCE VxWorks等 Linux作为一种免费的类UNIX操作系统 xff0c 由于其功能强大 xff0c 在嵌入式产品的应用中非常广泛 Linux操作系统的介绍 Linux操作系统 Linux操
  • Linux内核子系统 内核配置选项

    Linux内核子系统 编写设备驱动程序 xff0c 涉及Linux内核的许多子系统 xff0c 了解这些子系统对于了解Linux操作系统和编写设备驱动程序都非常有用 这些主要的子系统包括进程管理 内存管理 文件管理 设备管理和网络管理 现对
  • Linux命令格式 帮助信息 man命令笔记

    命令的格式 打开终端的方式 ubuntu中的命令基本都是在终端执行的 1 桌面右击打开终端 2 ctrl 43 alt 43 t 3 搜索框 终端提示符 stu 64 shy virtual machine stu xff1a 用户名 sh
  • Linux系统 自动补全管道命令学习

    自动补全 输入命令的一部分 xff0c 然后按tab键 xff0c 就自动补全命令 xff0c 如果有多个相同开头的命令多按一次tab键 xff0c 它会将所有你输入开头的命令提示出来 例 xff1a ifconfig 输入 if 按两下t
  • C++简介 C语言编程原理

    C 43 43 简介 C 43 43 融合了3种不同的编程方式 xff1a C语言代表的过程性语言 C 43 43 在C语言基础上添加的类代表的面向对象语言 C 43 43 模板支持的泛型编程 本章将简要介绍这些传统 不过首先 xff0c
  • FTP命令不同系统之间传输文件

    有时可能需要在不同的系统 xff08 甚至不同类型的操作系统 xff09 之间传输文件 xff0c 如将微软的Windows系统中的文件传给Linux或UNIX系统 xff0c 或反过来将Linux或UNIX系统中的文件传给微软的Windo
  • NFC技术的定义通信方式

    NFC技术的定义 什么是NFC NFC xff08 Near Field Communication xff0c 近场通信 xff09 xff0c 是一种工作频率为13 56MHz xff0c 通信距离只有0 xff5e 20cm xff0
  • RFID系统工作原理

    RFID系统由两部分组成 xff0c 其工作原理 xff1a 应答器 xff1a 也称为电子标签 xff0c 由天线 耦合元件及芯片组成 一般来说 xff0c 都是用标签作为应答器 每个标签具有唯一的电子编码 xff0c 附着在物体上标识目
  • 一台linux服务器配置两个tomcat安装包

    准备前 xff1a 一台linux服务器 2个tomcat7应用包 xff08 tomcat 7 0 56 tomcat idc 开始配置 xff1a tomcat idc应用jdk配置绝对路径 tomcat 7 0 56应用jdk配相对路
  • NFC通信基本原理 主动和被动通信

    NFC通信基本原理 近场通信原理 对于天线产生的电磁场 xff0c 根据其特性的不同 xff0c 划分为三个不同的区域 xff1a 感应近场 辐射近场和辐射远场 它们主要通过与天线的距离来区分 感应近场区指最靠近天线的区域 在此区域内 xf
  • NFC协议概述

    NFC协议概述 NFC相关的标准化组织 ISO 国际标准化组织 xff08 International Organization for Standardization xff09 简称ISO xff0c 是世界上最大的非政府性标准化机构
  • 计算机网络

    计算机网络 计算机网络是利用通信线路和通信设备 xff0c 把地理上分散并且具有独立功能的多个计算机系统互相连接 xff0c 按照网络协议进行数据通信 xff0c 通过功能完善的网络软件实现资源共享的计算机系统集合 计算机网络的功能 计算机
  • html标签手册

    完整的HTML页面 x1f4d1 基础标签 x1f4d1 x1f4d1 x1f4d1 HTML lt DOCTYPE gt 声明 DOCTYPE声明必须是 HTML 文档的第一行 xff0c 位于 html标签之前 DOCTYPE 声明不是
  • BCD码的作用和实现

    内容部分摘抄于朱有朋老师 BCD码本质是对数字的一种编码 xff0c 用来解决这种问题 xff1a 由56得到0x56 或者反过来 也就是说我们希望十进制的56被编码成56 xff08 这里56不是十进制的56 xff0c 而是两个数字5和
  • window和虚拟机(Linux)通过串口通讯

    准备工具 虚拟串口驱动 虚拟机 xff08 我的是乌班图版本 xff09 串口调试助手 xff08 以上网上自己找来下载 xff09 利用虚拟机串口驱动添加2个虚拟串口 xff08 com1和com2 xff09 xff0c 然后打开串口调

随机推荐

  • 关于‘QByteArray::operator QNoImplicitBoolCast() const’ is private

    home hins Qt5 9 8 5 9 8 gcc 64 include QtCore qbytearray h 436 error QByteArray operator QNoImplicitBoolCast const is pr
  • Linux创建虚拟CAN

    创建 xff1a 加载vcan内核模块 sudo modprobe vcan创建虚拟CAN接口 sudo ip link add dev can0 type vcan xff08 can0就是你要创建的设备 xff09 将虚拟CAN接口处于
  • 解决ubuntu20.04 连接xshell显示ssh拒绝服务

    近两天在弄linux系统 xff0c 突然xshell就连接不上了 xff0c 连接的时候一直显示ssh拒绝访问 折腾几个小时总算解决了 xff0c 现对其进行记录 报错情况 xff1a 手动分界效果 首先看下本机IP和虚拟机设置的IP是否
  • C++文件的建立

    C 43 43 文件的建立 include include int main using namespace std ofstream ofs jar txt ios out ofs lt lt 小明 lt lt endl ofs lt l
  • DB2数据库的安装-for linux

    DB2的安装 1 安装DB2服务端 将db2v8 iso文件 FP6 tar 安装响应文件db2ese rsp 复制到 home install 目录下 root cd home install mkdir iso fp root moun
  • ROS学习笔记-Gazebo安装与闪退、卡顿问题解决

    1 安装 在安装完整版的ROS后 xff0c 就包括了Gazebo的安装了 xff0c 因此在终端输入下载指令时 xff0c 出现已存在的反馈信息 安装完整版ROS的指令是 xff1a sudo apt get install ros me
  • win10+vs2015+Intel RealSense D435i深度相机配置

    第一步 xff1a Intel RealSense D435i的SDK下载 链接 xff1a https pan baidu com s 1sIDlkbk8U9PFmJLhGJndxg 提取码 xff1a lppa 第二步 xff1a 测试
  • Vue中使用element-ui的el-dialog对话框,实现拖拽效果

    效果图 xff1a element ui的el dialog对话框 xff0c 没有拖拽移动的效果 xff0c 需要自定义指令来实现对话框拖拽 1 准备 xff1a 在准备一个vue组件 xff08 点击按钮弹出对话框 xff09 功能 x
  • 前端知识点(六):网页中有大量图片时加载很慢,如何优化?

    1 图片懒加载 在图片未可视区域加一个滚动条事件 xff0c 判断图片位置与浏览器顶端和页面的距离 xff0c 当图片到浏览器顶端的距离 xff0c 小于图片到页面的距离时 xff0c 优先加载 2 图片预加载 将当前展示图片的前一张和后一
  • 请求类型get,delete,post,put 的用法(传参)

    1 get delete传参 注意 xff1a xff08 1 xff09 传参格式 xff1a 96 URL key 61 value amp key2 61 value2 96 xff08 2 xff09 注意使用反引号 xff0c 而
  • 关于前端--RSA加密(对登录密码加密)

    安装 npm install jsencrypt 1 在utils文件中封装一个jsencrypt js文件 密匙对生成链接 xff1a http web chacuo net netrsakeypair import JSEncrypt
  • Vue+Uniapp实现直播功能(推流拉流)

    提示 xff1a 前言 目前有一个项目 需要做一个APP和一个PC端网页 xff0c 主要功能是类似直播 xff0c 经查阅资料 xff0c 可采用uniapp 43 vue 43 推流拉流的技术 xff0c 前端使用uniapp打开摄像头
  • web菜单--自定义样式

    1 文件src styles variables scss 定义变量 sidebar menuText var menuText bfcbd9 menuActiveText var menuActiveText 409EFF subMenu
  • vue3拖拽布局+动态组件+自适应布局

    1 拖拽布局插件 Vue Grid Layout 适用Vue js的栅格布局系统 可拖动和可调整大小栅格布局的Vue组件 https jbaysolutions github io vue grid layout zh 在package j
  • webrtc视频播放器(ZLMRTCClient.js)

    引言 在播放实时视频时 xff0c 视频播放器一般会有延迟 xff0c 此时 xff0c 就可以使用webrtc来拉流 xff0c 延迟在1s或者基本没有延迟 与zlm配套的rtc js客户端 国标 1 开源项目地址 ZLMRTCClien
  • python3字符串格式化

    python 3 字符串格式化 字符串格式化 Python的字符串格式化有两种方式 百分号方式 format方式 百分号的方式相对来说比较老 xff0c 而format方式则是比较先进的方式 xff0c 企图替换古老的方式 xff0c 目前
  • PDU 发送短信1

    使用PDU模式 xff0c 包含UDH头信息分割短信 xff0c 用户数据头UDH 61 00表示长短信拆分 贴一个转来的PDU学习笔记 xff0c 网上收藏的 关于PDU其实并不难 xff0c 至于PDU是什么 xff0c 不管它 xff
  • 在elementUI中格式化信息几种方式

    1 组件自带的格式化方法 2 全局注册过滤器 3 用el switch 这三列的数据需要格式化 lt el table border data 61 34 list 34 gt lt el table column label 61 34
  • 第八届蓝桥杯客观题答案

    解析 2 OC门又叫集电极开路门 5 地线也算信号线 6 RS232 不能调试下载吧 xff1f JATG 4线 xff08 不用VCC xff09 SWJ 5线 SPI 不是下载线 xff0c 通信用的 xff0c 而且也有五根 7 答案
  • Python学习笔记:Pyqt5鼠标键盘事件处理

    import sys from PyQt5 QtCore import from PyQt5 QtGui import from PyQt5 QtWidgets import class windows QMainWindow def in