PyQt5 右键单击鼠标代码

为按钮 QPushButton 添加右键点击功能,实现原理是新定义一个类、继承 QPushButton,在其中为右键单击事件添加信号并发送,最终为该右键单击信号添加槽进行后续处理。

from PyQt5.Qt import *


class Btn(QPushButton):
    # 类属性
    # abc = 10
    rightClicked = pyqtSignal()

    def mousePressEvent(self, evt):
        super().mousePressEvent(evt)
        # 为右键单击事件建立信号
        if evt.button()==Qt.RightButton:
            self.rightClicked.emit()


class Window(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("PyQt5 的学习")
        self.resize(500, 500)
        self.setup_ui()

    def setup_ui(self):
        btn = Btn("xx",self)
        btn.clicked.connect(lambda: print("按钮被点击了"))
        # 为右键单击信号连接槽
        btn.rightClicked.connect(lambda: print("按钮被右键单击了"))


if __name__ == '__main__':
    import sys

    app = QApplication(sys.argv)

    window = Window()
    window.show()
    sys.exit(app.exec_())


版权声明:本文为weixin_40796925原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。