zoukankan      html  css  js  c++  java
  • 信号与槽-装饰器

    所谓装饰器信号与槽,就是通过装饰器的方法来定义信号和槽函数。具体使用方法如下:

    @PyQt5.QtCore.pyqtSlot(参数)
    def on_发送者对象名称_发射信号名称(self, 参数):
            pass

    这种方法有效的前提是下面的函数已经执行:

    QtCore.QMetaObject.connectSlotsByName(QObject)

    在上面代码中,“发送者对象名称”就是使用setObjectName函数设置的名称,因此自定义槽函数的命名规则也可以看成:on + 使用 setObjectName设置的名称 + 信号名称

    具体的使用方法:

    import sys
    from PyQt5.QtCore import pyqtSlot, QObject, QMetaObject
    from PyQt5.QtWidgets import QMainWindow, QWidget, QApplication, QPushButton, QMessageBox, QHBoxLayout
    
    
    class CustWidget(QWidget):
        def __init__(self, parent=None):
            super().__init__(parent)
    
            self.okButton = QPushButton("OK", self)
    
            # 使用setObjectName设置对象名称
            self.okButton.setObjectName("okButton")
            layout = QHBoxLayout()
            layout.addWidget(self.okButton)
            self.setLayout(layout)
            QMetaObject.connectSlotsByName(self)
    
        @pyqtSlot()
        def on_okButton_clicked(self):
            print("单击了 OK按钮")
    
    
    if __name__ == '__main__':
        app = QApplication(sys.argv)
        win = CustWidget()
        win.show()
        sys.exit(app.exec_())
  • 相关阅读:
    MySQL(一)
    Python(二十九)
    python(二十八)
    python(二十七)
    Python(二十六)
    Linux的安装包命令/yum 与 Rpm
    linux系统监控与硬盘分区/格式化/文件系统管理
    linux操作系统及命令Part 2
    linux命令大全总结
    linux 用户/群组/权限
  • 原文地址:https://www.cnblogs.com/lynsha/p/13471399.html
Copyright © 2011-2022 走看看