子窗口返回的MainWindow中的值
我怎么才能在关闭子窗口时,把一个值从子窗口发送到主窗口呢?
当我在子窗口里按下“关闭按钮”时,子窗口会把计算出来的值发送给主窗口。
我做了一个这样的测试:
def closeEvent(self, evnt):
value = 34
return value
但是没有成功,我得到了这个结果:
TypeError: invalid result type from ChildWindow.closeEvent()
1 个回答
1
这里有一个简单的例子,教你怎么做到这一点:
import sys
from PyQt4 import QtGui
class Window(QtGui.QWidget):
def __init__(self):
QtGui.QWidget.__init__(self)
self.button = QtGui.QPushButton("Make child")
self.button.clicked.connect(self.openChildWindow)
layout = QtGui.QVBoxLayout(self)
layout.addWidget(self.button)
def openChildWindow(self):
self.childWindow = ChildWindow(self)
self.childWindow.setGeometry(650, 350, 200, 300)
self.childWindow.show()
def printResult(self, value):
print value
class ChildWindow(Window):
def __init__(self, parentWindow):
super(ChildWindow, self).__init__()
self.parentWindow = parentWindow
self.parentWindow.printResult("I'm in child init")
self.button.setDisabled(1)
def closeEvent(self, event):
self.parentWindow.printResult("Closing child, this text is returned to parent")
if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
window = Window()
window.setGeometry(600, 300, 200, 300)
window.show()
sys.exit(app.exec_())