【发布时间】:2013-12-31 22:30:27
【问题描述】:
我想使用自动连接功能。我正在使用这个例子:
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视为要连接的对象。
标签: python pyqt4 signals-slots