我想使用自動連接功能。我使用的這個例子: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