0
我不知道如何讓信號在兩個不同的類之間傳遞。我希望classA按鈕自定義信號顯示classB按鈕! (self.butt2.setVisible(真)) 代碼是如下:如何連接PyQt中不同對象的自定義信號?
from PyQt4 import QtGui,QtCore
import sys
class A(QtGui.QWidget):
customSignal = QtCore.pyqtSignal(str)
def __init__(self,parent=None):
super(A,self).__init__(parent)
self.applyButton = QtGui.QPushButton('Apply')
mLayout = QtGui.QHBoxLayout()
mLayout.addWidget(self.applyButton)
self.setLayout(mLayout)
self.applyButton.clicked.connect(self.emitSignal)
self.customSignal.connect(self.printStr)
def emitSignal(self):
self.customSignal.emit('classA')
def printStr(self):
print 'this is class A'
class B(QtGui.QWidget):
def __init__(self,parent=None):
super(B,self).__init__(parent)
self.butt1 = QtGui.QPushButton('abc')
self.butt2 = QtGui.QPushButton('def')
self.butt2.setVisible(False)
mainLayout = QtGui.QVBoxLayout()
mainLayout.addWidget(self.butt1)
mainLayout.addWidget(self.butt2)
self.setLayout(mainLayout)
if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
a = A()
a.show()
b = B()
b.show()
sys.exit(app.exec_())
def printStr(self):self.customSignal.connect ...什麼也沒有發生! – user3134294
@ user3134294。你有什麼可能的原因將它連接到'printStr'方法!?在'b.show()'之後,在腳本的底部建立連接。 – ekhumoro