鼠标双击时无鼠标按下/释放事件

2024-09-30 22:26:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我想同时使用两个事件:mouseDoubleClickmouseReleaseEvent。但是有一个问题:即使双击鼠标,后一个事件也总是被触发。在


Tags: 事件mousereleaseeventmousedoubleclick双击鼠标
1条回答
网友
1楼 · 发布于 2024-09-30 22:26:56

答案在下面。请张贴建议,以帮助我改进此代码。在

from PySide2.QtCore import qApp, QTimer
from PySide2.QtWidgets import QApplication, QWidget


class Widget(QWidget):
    def __init__(self):
        super().__init__()
        self.timer = QTimer(self)
        self.timer.setSingleShot(True)
        self.timer.timeout.connect(self.single_click)
        self.double_click_interval = qApp.doubleClickInterval()

    def mouseReleaseEvent(self, e):
        if not self.timer.isActive():
            self.timer.start(self.double_click_interval)
        else:
            self.timer.stop()
            self.double_click()
        super().mouseReleaseEvent(e)

    def single_click(self):
        print("single")

    def double_click(self):
        print("double")


if __name__ == '__main__':
    import sys

    app = QApplication(sys.argv)

    w = Widget()
    w.show()
    w.raise_()

    sys.exit(app.exec_())

相关问题 更多 >