簡體   English   中英

使用列表作為參數定義pyqt4信號

[英]Define pyqt4 signals with a list as argument

根據

http://pyqt.sourceforge.net/Docs/PyQt4/new_style_signals_slots.html

我可以通過mysignal = pyqtSignal(int)定義一個帶有整數參數的pyqt4-signal。 如何定義一個信號,該信號需要一個整數和一個字符串列表,或更一般地說是一個稱為myobject的對象作為參數。

以下代碼創建一個帶有兩個參數的信號:一個整數和一個對象列表。 用戶界面僅包含一個按鈕。 單擊該按鈕時會發出信號。

from PyQt4.QtGui import *
from PyQt4.QtCore import *

class Foo(object):
    pass

class MyWidget(QWidget):
    mysignal = pyqtSignal(int, list)

    def __init__(self, parent=None):
        super(MyWidget, self).__init__(parent)
        self.hlayout = QHBoxLayout()
        self.setLayout(self.hlayout)
        self.b = QPushButton("Emit your signal!", self)
        self.hlayout.addWidget(self.b)
        self.b.clicked.connect(self.clickHandler)
        self.mysignal.connect(self.mySignalHandler)

    def clickHandler(self):
        self.mysignal.emit(5, ["a", Foo(), 6])

    def mySignalHandler(self, n, l):
        print n
        print l

if __name__ == '__main__':
    import sys
    app = QApplication(sys.argv)
    w = MyWidget()
    w.show()
    sys.exit(app.exec_())

單擊按鈕時,您應該看到類似以下內容的內容:

5
['a', <__main__.Foo object at 0xb7423e0c>, 6]

在您的終端上。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM