PySide6 之鼠标事件写字板

news/2025/9/26 13:00:42/文章来源:https://www.cnblogs.com/yang-2018/p/19113278

一、效果图

image

二、示例代码

from PySide6.QtWidgets import *
from PySide6.QtCore import *
from PySide6.QtGui import *
import sysclass ImageWidget(QWidget):pass'''鼠标控制图片缩放、拖动,鼠标滚动放大、缩小'''
class Demo(QWidget):point_color = [Qt.GlobalColor.red, Qt.GlobalColor.yellow, Qt.GlobalColor.green, Qt.GlobalColor.blue, Qt.GlobalColor.darkCyan]def __init__(self):super().__init__()self.resize(400, 300)self.setWindowTitle('鼠标事件')# 图片是否拖动self.drag = Falseself.start_pos = QPoint()self.end_pos = QPoint()self.pix_map = QPixmap(self.width(), self.width())# 设置背景颜色self.pix_map.fill("#ccc")'''绘制点'''def paintEvent(self, event):p = QPainter(self.pix_map)_rand = QRandomGenerator.global_().bounded(len(self.point_color))p.setPen(self.point_color[_rand])p.drawLine(self.start_pos, self.end_pos)self.start_pos = self.end_pos#在画布上画出paint = QPainter(self)paint.drawPixmap(0, 0, self.pix_map)'''鼠标被按下'''def mousePressEvent(self, event):if event.button() == Qt.MouseButton.LeftButton:# 左键被按下print('左键被按下')self.drag = Trueself.start_pos = event.pos()'''鼠标拖动事件'''def mouseMoveEvent(self, event):print('鼠标拖动事件', event.pos())if self.drag:self.end_pos = event.pos()self.update()'''鼠标抬起'''def mouseReleaseEvent(self, event):if event.button() == Qt.MouseButton.LeftButton:self.drag = Falseself.start_pos = self.end_posself.update()if __name__ == '__main__':app = QApplication(sys.argv)d = Demo()d.show()app.exit(app.exec())

 

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

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

相关文章

深入解析:golang基础语法(三)常量、指针、别名、关键字、运算符、字符串类型转换

深入解析:golang基础语法(三)常量、指针、别名、关键字、运算符、字符串类型转换pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; fo…

烟台网站建设方案成都市建设局官方网站

目录 一. 空属性null 二. 默认值default 三. 列描述comment 四. 填充零zerofill 五. 主键primary key 六. 自增长auto_increment 七. 唯一键unique 八. 外键foreign key 一. 空属性null 对于表中的数据,如果在进行插入的时候不显示地给定值,那么…

单B细胞技术如何实现兔单抗高通量高特异制备

单B细胞技术如何实现兔单抗高通量高特异制备 在单克隆抗体(mAb)研发领域,兔源单抗以其高亲和力和高特异性备受关注。传统的杂交瘤技术虽然成熟,但周期长、效率低,而且抗体多样性有限。近年来,单B细胞技术的出现,…

HP激光墨盒换墨粉

墨盒分区加墨是先清理使用过的墨粉,在加入要使用的墨粉。 清理使用过的墨粉 可拆开使用过的墨粉的墨盒去清理,也可用不拆下清理。打开红色框的盖子,到出里面的墨粉,最好用袋子装好清理,防止粉尘到处飞。 拆下来清…

实用指南:Golang学习笔记: 常用标准库

实用指南:Golang学习笔记: 常用标准库pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Mo…

AI论文速读 | 当大语言模型遇上时间序列:大语言模型能否执行多步时间序列推理与推断 - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

unordered_map性能被吊打!我用基数树让内存池性能暴涨几十倍的秘密

哈喽,大家好,我是小康! 今天要和大家聊一个特别有意思的话题——基数树。 说实话,我第一次听到这个名词的时候,内心是懵逼的。基数?树?这玩意儿到底是啥? 直到有一天,我在研究TCMalloc内存池源码的时候,发现…

网站备案后可以更换域名吗网红营销优势

Title 题目 Automated anomaly-aware 3D segmentation of bones and cartilages in kneeMR images from the Osteoarthritis Initiative 来自骨关节炎计划的膝关节MR图像的自动异常感知3D骨骼和软骨分割 Background 背景 近年来,多个机器学习算法被提出用于图像…

asp网站配置伪静态重庆注册公司核名在哪个网站

上次提到的开机自启动的配置,获得了LD的称赞,然而LD的要求,都是“既得陇复望蜀”的,他又期望我们能实现openGauss安装的“自动化”,于是尝试了下用shell脚本部署,附件中的脚本实测有效,openEule…

详细介绍:《 Linux 点滴漫谈: 一 》开源之路:Linux 的历史、演进与未来趋势

详细介绍:《 Linux 点滴漫谈: 一 》开源之路:Linux 的历史、演进与未来趋势pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-fa…

深入解析:TENGJUN“二合一(2.5MM+3.5MM)”耳机插座:JA10-BPD051-A;参数与材质说明

深入解析:TENGJUN“二合一(2.5MM+3.5MM)”耳机插座:JA10-BPD051-A;参数与材质说明pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important…

龙凤网站建设云聚达长春网站建设哪里好

基于飞桨paddle波士顿房价预测练习模型测试代码 导入基础库 #paddle:飞桨的主库,paddle 根目录下保留了常用API的别名,当前包括:paddle.tensor、paddle.framework、paddle.device目录下的所有API; import paddle #Lin…

CentOS 9服务器版 部署Zabbix7.0 server端 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

深入解析:Apache 生产环境操作与 LAMP 搭建指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

JAVA第一天

Markdown 学习 标题 +空格=一级标题 +空格=二级标题 ......... 字体 粗体 斜体 粗斜体 删除 引用第一天学习分割线图片超链接 我的世界 列表表格ctrl+t 代码

什么网站做简历模板关键词排名怎么快速上去

http://answers.unity3d.com/questions/34328/terrain-with-multiple-splat-textures-how-can-i-det.html转载于:https://www.cnblogs.com/klobohyz/archive/2012/10/09/2716627.html

c 网站开发需要什么软件东莞出行政策有变了

文章目录 前言一、哈希结构体?二、增删差3、遍历,清空,计数 前言 哈希表在头文件“utash.h”中已经有了,只需简单学习用法即可 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很…

自己做免费网站的视频参考消息电子版手机版

处理 HttpApplication 的事件HttpApplication 提供了基于事件的扩展机制,允许程序员借助于处理管道中的事件进行处理过程扩展。由于 HttpApplication 对象是由 ASP.NET 基础架构来创建和维护的,那么,如何才能获取这个对象引用,以便…

东莞营销型网站建设流程网站速成

1.类型转换 1.1 int(x):转化为一个整数&#xff0c;只能转换由纯数字组成的字符串 float->int 浮点型强转整形会去掉小数点后面的数&#xff0c;只保留整数部分 a 1.2 print(type(a)) #<class float> b int(a) print(type(b)) #<class int>print(int…

现货做网站wordpress登入可见插件

需做工作 在每个微服务下面新建一个Dockerfile文件根据Dockerfile文件使用docker build指令&#xff0c;打包为具体的镜像&#xff08;根据自己需求选择&#xff09;将docker镜像上传到私人docker仓库或者是公共仓库&#xff0c;如果没有上传&#xff0c;则自动保存在本地编写…