我想使用自动连接功能。我使用的这个例子:pyqt自动连接信号
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'的对象,并将此对象的引用放入自己。我只能猜测,但我认为''connectSlotsByName()'不考虑连接对象中的'self'。 – Ber