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_())
  • 相关阅读:
    MVC身份验证及权限管理
    EasyPR--开发详解
    ASP.NET 安全认证
    将Excel导入到数据中
    ExtJS 4 树
    ExtJS 4 表单
    ExtJS 4 Grids 详解
    ExtJS 4 类系统
    第4章 类型基础 -- 4.1 所有类型都从System.Object派生
    随滚动条浮动的链接块层
  • 原文地址:https://www.cnblogs.com/lynsha/p/13471399.html
Copyright © 2011-2022 走看看