首页 PyQt5教程 PyQt5鼠标按下、释放、移动、点击等事件使用演示
pay pay
教程目录

PyQt5鼠标按下、释放、移动、点击等事件使用演示

日期: 四月 24, 2023, 10:09 a.m.
栏目: PyQt5教程
阅读: 976
作者: Python自学网-村长

摘要: PyQt5是一个Python的GUI工具包,它提供了丰富的图形界面控件,同时也支持鼠标事件。鼠标事件是指在鼠标与程序界面交互的过程中,程序对于鼠标的各种操作做出的响应。

PyQt5是一个Python的GUI工具包,它提供了丰富的图形界面控件,同时也支持鼠标事件。鼠标事件是指在鼠标与程序界面交互的过程中,程序对于鼠标的各种操作做出的响应。

PyQt5中提供了以下几种鼠标事件:

  • mousePressEvent:鼠标按下事件
  • mouseReleaseEvent:鼠标释放事件
  • mouseMoveEvent:鼠标移动事件
  • mouseDoubleClickEvent:鼠标双击事件
  • wheelEvent:鼠标滚轮事件

下面我们来演示一下如何在PyQt5中使用鼠标事件。首先我们需要导入PyQt5库:

from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5.QtGui import QPainter, QBrush, QPen
from PyQt5.QtCore import Qt
import sys

class MyWidget(QWidget):
    def __init__(self):
        super().__init__()
        self.setFixedSize(400, 400)
        self.setWindowTitle('Mouse Event')

    def paintEvent(self, event):
        painter = QPainter(self)
        painter.setRenderHint(QPainter.Antialiasing)

        brush = QBrush(Qt.SolidPattern)
        painter.setBrush(brush)

        pen = QPen(Qt.NoPen)
        painter.setPen(pen)

        painter.drawRect(100, 100, 200, 200)

    def mousePressEvent(self, event):
        print('Mouse pressed at ({}, {})'.format(event.x(), event.y()))

    def mouseReleaseEvent(self, event):
        print('Mouse released at ({}, {})'.format(event.x(), event.y()))

    def mouseMoveEvent(self, event):
        print('Mouse moved at ({}, {})'.format(event.x(), event.y()))

    def mouseDoubleClickEvent(self, event):
        print('Mouse double clicked at ({}, {})'.format(event.x(), event.y()))

    def wheelEvent(self, event):
        if event.angleDelta().y() > 0:
            print('Mouse wheel up')
        else:
            print('Mouse wheel down')

这个自定义的QWidget类中重写了paintEvent方法,用于绘制一个矩形。同时也重写了鼠标事件的几个方法,用于打印出鼠标的各种事件。

最后我们在主函数中创建一个应用并运行:

if __name__ == '__main__':
    app = QApplication(sys.argv)
    w = MyWidget()
    w.show()
    sys.exit(app.exec_())

运行程序后,我们就可以在界面上看到一个矩形。当我们对这个矩形进行鼠标操作时,控制台中就会打印出相应的事件信息。

部分文字内容为【Python自学网】原创作品,转载请注明出处!视频内容已申请版权,切勿转载!
回顶部