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_())
  • 相关阅读:
    postgresql 2012 大会PPT下载 Joe
    Postgresql连接 Joe
    查看Postgresql的连接数 Joe
    greta使用
    CString GetFileDir(const CString& csFile)
    UnicodeToAnsi函数
    myeclipse优化方案
    bool CreatedMultipleDirectory( char* direct)
    LPWSTR GBK(LPCSTR plszUtf8, WCHAR* lpszGBK)
    真正整合资源的高手
  • 原文地址:https://www.cnblogs.com/lynsha/p/13471399.html
Copyright © 2011-2022 走看看