根据
http://pyqt.sourceforge.net/Docs/PyQt4/new_style_signals_slots.html
我可以用一个整数参数来定义一个pyqt4信号 mysignal = pyqtSignal(int)
。如何定义一个信号,该信号采用整数和字符串列表,或更一般地说是一个被调用的对象 myobject
作为论点。
根据
http://pyqt.sourceforge.net/Docs/PyQt4/new_style_signals_slots.html
我可以用一个整数参数来定义一个pyqt4信号 mysignal = pyqtSignal(int)
。如何定义一个信号,该信号采用整数和字符串列表,或更一般地说是一个被调用的对象 myobject
作为论点。
以下代码创建一个带有两个参数的信号:整数和对象列表。 UI只包含一个按钮。单击按钮时会发出信号。
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]
在你的终端上。
以下代码创建一个带有两个参数的信号:整数和对象列表。 UI只包含一个按钮。单击按钮时会发出信号。
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]
在你的终端上。