当前位置: 首页 > news >正文

PySide6 之鼠标事件写字板

一、效果图

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.jsqmd.com/news/4177/

相关文章:

  • 深入解析:golang基础语法(三)常量、指针、别名、关键字、运算符、字符串类型转换
  • 单B细胞技术如何实现兔单抗高通量高特异制备
  • HP激光墨盒换墨粉
  • 实用指南:Golang学习笔记: 常用标准库
  • AI论文速读 | 当大语言模型遇上时间序列:大语言模型能否执行多步时间序列推理与推断 - 指南
  • unordered_map性能被吊打!我用基数树让内存池性能暴涨几十倍的秘密
  • 详细介绍:《 Linux 点滴漫谈: 一 》开源之路:Linux 的历史、演进与未来趋势
  • 深入解析:TENGJUN“二合一(2.5MM+3.5MM)”耳机插座:JA10-BPD051-A;参数与材质说明
  • CentOS 9服务器版 部署Zabbix7.0 server端 - 详解
  • 深入解析:Apache 生产环境操作与 LAMP 搭建指南
  • JAVA第一天
  • C# Avalonia 15- Animation- CustomEasingFunction
  • US$189 VVDI2 BMW FEM amp; BDC Functions Authorization Service With Ikeycutter Condor
  • nginx平滑升级+location案例 - 教程
  • 深入解析:装备制造企业支撑智能制造的全生命周期数据治理实践
  • 深入解析:P4779 【模板】单源最短路径(标准版)
  • US$36 35160WT Adapter for CG Pro 9S12 Programmer
  • [更新完毕]2025华为杯B题数学建模研赛B题研究生数学建模思路代码文章成品:无线通信系统链路速率建模 - 指南
  • 模式组合应用-享元模式 - 详解
  • 【Spring Boot】自定义starter
  • redis-bitMap类型基本命令
  • PrintNightmare漏洞仍未终结:深入解析PnP配置绕过与防护方案
  • Go 1.26 内置函数 new 新特性
  • 基于SpringBoot及PostgreSQL的国家减肥食谱管理项目(上):区域与省份安装搭建
  • 基于BP神经网络的激光焊接数据预测
  • 重要公式 - Emi
  • Pandawiki:企业知识管理的全能管家
  • apt 还是 uv
  • 软件构造中的数据处理(sql) 6章
  • 鹿鼎记豪侠传:Rust 重塑 iOS 江湖(下) - 指南