我希望使用自动连接功能。我正在使用以下示例:
http://www.eurion.net/python-snippets/snippet/Connecting%20signals%20and%20slots.html
它可以工作,但我想创建自己的信号和插槽,而不是使用内置信号的示例。 例如,这里有一个自定义信号和自定义插槽的示例,但不起作用:import sys
from PyQt4 import QtGui, QtCore
class SignalsAndSlots(QtGui.QWidget):
testSignal = QtCore.pyqtSignal(str,name='testSignal')
def __init__(self):
QtGui.QMainWindow.__init__(self)
self.setObjectName('testObject')
self.label = QtGui.QLabel(self)
QtCore.QMetaObject.connectSlotsByName(self)
self.emitSignal()
def emitSignal(self):
self.testSignal.emit('message')
@QtCore.pyqtSlot(str,name='on_testObject_testSignal')
def autoSlot(self,msg):
self.label.setText(msg)
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
gui = SignalsAndSlots()
gui.show()
app.exec_()
非常感谢
self
的对象中发出信号,并将该对象的引用放入self
中。我只能猜测,但我认为connectSlotsByName()
不会考虑将self
作为要连接的对象之一。 - Ber