在 PyQt5 中,要处理 QPushButton 的鼠标事件,你需要创建一个自定义按钮类并重写相应的事件处理方法
import sys from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QPushButton from PyQt5.QtCore import Qt class CustomButton(QPushButton): def __init__(self, text, parent=None): super().__init__(text, parent) def mousePressEvent(self, event): if event.button() == Qt.LeftButton: print("左键点击") elif event.button() == Qt.RightButton: print("右键点击") super().mousePressEvent(event) def mouseReleaseEvent(self, event): if event.button() == Qt.LeftButton: print("左键释放") elif event.button() == Qt.RightButton: print("右键释放") super().mouseReleaseEvent(event) def mouseDoubleClickEvent(self, event): if event.button() == Qt.LeftButton: print("左键双击") elif event.button() == Qt.RightButton: print("右键双击") super().mouseDoubleClickEvent(event) app = QApplication(sys.argv) window = QWidget() layout = QVBoxLayout(window) custom_button = CustomButton("点击我") layout.addWidget(custom_button) window.setLayout(layout) window.show() sys.exit(app.exec_())
在这个示例中,我们创建了一个名为 CustomButton
的自定义按钮类,它继承自 QPushButton
。然后,我们重写了 mousePressEvent
、mouseReleaseEvent
和 mouseDoubleClickEvent
方法,以便在不同的鼠标事件发生时打印相应的信息。最后,我们将自定义按钮添加到主窗口中并显示它。