PySide入门实战之五 | 信号与槽函数之鼠标、键盘等事件

在这里插入图片描述


🚀🚀🚀 Pyside6实战教程专栏目录入口:点击跳转


目录

  • 一、前期准备
  • 二、鼠标触发事件
    • 鼠标拖动窗口

一、前期准备

我们采用Pyside入门实战之四中通过QTDesigner创建的界面,具体由两个Label和一个Button组件构成(含背景),如下所示:
在这里插入图片描述

import sys
from PySide6.QtWidgets import QMainWindow, QApplicationfrom ui_main import Ui_MainWindowclass MainWindow(QMainWindow, Ui_MainWindow):def __init__(self):super(MainWindow, self).__init__()self.setupUi(self)if __name__ == '__main__':app = QApplication(sys.argv)win = MainWindow()win.show()app.exec()

二、鼠标触发事件

import sys
from PySide6.QtWidgets import QMainWindow, QApplication
from PySide6 import QtGui
from PySide6.QtCore import Qtfrom ui_main import Ui_MainWindowclass MainWindow(QMainWindow, Ui_MainWindow):def __init__(self):super(MainWindow, self).__init__()self.setupUi(self)# 开启鼠标追踪self.setMouseTracking(True)  def mousePressEvent(self, event: QtGui.QMouseEvent):if event.button() == Qt.LeftButton:self.label.setText("点击了鼠标左键")def mouseMoveEvent(self, event: QtGui.QMouseEvent):self.label_2.setText(f"鼠标移动  x:{event.x()} y:{event.y()}")def mouseReleaseEvent(self, event: QtGui.QMouseEvent):if event.button() == Qt.LeftButton:self.label("释放了鼠标左键")if __name__ == "__main__":app = QApplication(sys.argv)win = MainWindow()win.show()app.exec()

鼠标拖动窗口

def mousePressEvent(self, event: QtGui.QMouseEvent):if event.button() == Qt.LeftButton:self.mouse_start_pt = event.globalPosition().toPoint()self.window_pos = self.frameGeometry().topLeft()self.drag = Truedef mouseMoveEvent(self, event: QtGui.QMouseEvent):if self.drag:distance = event.globalPosition().toPoint() - self.mouse_start_ptself.move(self.window_pos + distance)def mouseReleaseEvent(self, event: QtGui.QMouseEvent):if event.button() == Qt.LeftButton:self.drag = False

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【c++】基础知识——快速入门c++

🌟🌟作者主页:ephemerals__ 🌟🌟所属专栏:C 目录 前言 一、手搓一个Hello World 二、命名空间namespace 1.命名空间的定义 2.命名空间的使用 3.命名空间补充知识 三、c中的输入和输出 四、缺省参…

图书馆座位再利用小程序的设计

管理员账户功能包括:系统首页,个人中心,用户管理,座位信息管理,座位预订管理,互勉信息管理,意见反馈管理,系统管理 微信端账号功能包括:系统首页,我的 开发…

Unity补完计划 之Tilemap

本文仅作笔记学习和分享,不用做任何商业用途 本文包括但不限于unity官方手册,unity唐老狮等教程知识,如有不足还请斧正 1.Tilemap 是什么 Q:和 SpriteShape有什么区别? A:tilemap强项在于做重的复背景&…

VsCode无法远程调试

一、问题描述 按照《VsCode gdb gdbserver远程调试C程序》中介绍的方法,配置好VsCode后,按下F5快捷键,或点击“Start Debugging”按钮,没有反应,无法启动调试: 二、解决方法 针对该问题,我尝…

常用设计模式总结

代码的评判角度 常见的评判代码好坏的词汇: 灵活性(flexibility)、可扩展性(extensibility)、可维护性(maintainability)、可 读性(readability)、可理解性(…

电子元器件—三极管(一篇文章搞懂电路中的三极管)(笔记)(面试考试必备知识点)

三极管的定义及工作原理 1. 定义 三极管(Transistor)是一种具有三层半导体材料(P-N-P 或 N-P-N)构成的半导体器件,用于信号放大、开关控制和信号调制等应用。三极管有三个引脚:发射极(Emitter…

Javascript——NaN有什么用法

简介 在 JavaScript 中,NaN(Not a Number)是一个特殊的值,用来表示非数字的结果,例如一个不合法的数学运算的结果。根据 IEEE 754 浮点数标准,NaN 不等于任何值,包括它自己。这意味着 NaN 是唯…

JAVA毕业设计158—基于Java+Springboot的二手车交易管理系统(源代码+数据库+万字论文+ppt)

毕设所有选题: https://blog.csdn.net/2303_76227485/article/details/131104075 基于JavaSpringboot的二手车交易管理系统(源代码数据库万字论文ppt)158 一、系统介绍 本项目前后端不分离(可以改为ssm版本),分为用户、管理员两种角色 1、用户&#…

Golang | Leetcode Golang题解之第326题3的幂

题目: 题解: func isPowerOfThree(n int) bool {return n > 0 && 1162261467%n 0 }

AXS4054:单节锂电池充电管理芯片特性与应用推荐

AXS4054是一款单节锂离子电池恒流/恒压线性充电器,芯片集成功率晶体管,充电电流可以用外部电阻设定,蕞大持续充电电流可达600mA,非常适合便携式设备应用,适合USB电源和适配器电源工作,内部采用防倒充电路,不…

鸿蒙AI功能开发【拍照识别文字】

拍照识别文字 介绍 本示例通过使用ohos.multimedia.camera (相机管理)和textRecognition(文字识别)接口来实现识别提取照片内文字的功能。 效果预览 使用说明 1.点击界面下方圆形文字识别图标,弹出文字识别结果信息界面,显示当…

搜狗爬虫(www.sogou.com)IP及UA,真实采集数据

一、数据来源: 1、这批搜狗爬虫(www.sogou.com)IP来源于尚贤达猎头网站采集数据; ​ 2、数据采集时间段:2023年10月-2024年7月; 3、判断标准:主要根据用户代理是否包含“www.sogou.com”和IP核实…

Gazebo之MyRobot建立

Gazebo之MyRobot建立 1. 源由2. 示例Step 1: 新建一个简单世界Step 2: 新建一个模型(model)Step 3: 机器人组成链接(Links)Step 3.1: 新增底盘(Links/Chassis)Step 3.1.1: 惯性属性(Inertial properties)Step 3.1.2: 视觉(Visual)Step 3.1.3: 碰撞(Collision) Step 3.2: 新增左…

C语言 操作符详解

目录 一、操作符的分类 二、二进制和进制转换 2.1 二进制转十进制 2.2 二进制转八进制 2.3 二进制转十六进制 三、原码、反码、补码 四、移位操作符 4.1 左移操作符 ​编辑 4.2 右移操作符 五、位操作符 按位与:& 按位或:| 按位异或&#x…

16个好用到爆的Python实用脚本!

以下是16个非常实用的Python脚本示例,每个脚本都有其特定的用途,并且我会附上相应的源码。这些脚本涵盖了数据处理、网络请求、文件操作等多个方面,非常适合初学者和进阶者学习和使用。 1. 批量重命名文件 import osdef batch_rename(fold…

【Python】数据类型之集合

集合是一个无序、可变、不允许元素重复的容器。 1、定义 v1{11,22,33} 1))无序:集合无法通过索引取值。 2))可变:可以添加和删除集合中的元素。 3))集合不允许元素重复。 例如…

MySQL中常用工具

MySQL自带的系统数据库 常用工具 MySQL mysqladmin mysqlbinlog mysqldump mysqlimport/source mysqlimport只能导入文本文件,不能导入sql文件

C++分析红黑树

目录 红黑树介绍 红黑树的性质与平衡控制关系 红黑树节点的插入 情况1:不需要调整 情况2:uncle节点为红色 情况3:uncle节点为黑色 总结与代码实现 红黑树的删除(待实现) 红黑树的效率 红黑树介绍 红黑树是第二种平衡二…

提前批测开三面,已OC!

大家好,我是洋子 近期百度提前批已经开始有一段时间了,甚至已经有不少 25 届的同学 oc 了,这里分享一位已经顺利 oc 百度提前批测开岗位同学的三轮面试面经 整个三轮技术面试总体难度不高,但考察知识广度比较广,如果…

SQL注入:MySQL元数据库,外网实战手工SQL注入

MySQL元数据库 MySQL的元数据库是一组特殊的数据库,用于存储MySQL服务器的元数据信息,在sql注入中较为常用为以下两种元数据库: information_schema:这个数据库包含了MySQL服务器上所有其他数据库的元数据信息。例如数据库名、表…