我使用Qt Designer
创建一个GUI
。现在我需要给closeEvent
额外的参数。如何为closeEvent
提供额外的参数?该参数将是另一个窗口的实例。这样我就可以在closeEvent的另一个函数中使用这个实例作为参数。下面是一个简化的代码。
class UiMain(QtWidgets.QMainWindow):
def __init__(self, subwindow):
super(UiMain, self).__init__()
self.ui = Ui_UiArtikelkarte()
self.ui.setupUi(self)
self.show()
def closeEvent(self, event, subwindow):
some_function(self, source=subwindow)
event.accept()
app = QtWidgets.QApplication(sys.argv)
win1 = UiMain(subwindow)
sys.exit(app.exec_())
当然,这给了我:
TypeError: closeEvent() missing 1 required positional argument: 'subwindow'
有什么方法可以给closeEvent
额外的参数吗?如果能帮上忙,我会很感激的。
发布于 2019-01-31 10:01:02
由于您将额外的参数传递给构造函数,因此您可以只保存数据并将其显示在closeEvent
方法上。
class UiMain(QtWidgets.QMainWindow):
def __init__(self, test):
super(UiMain, self).__init__()
self.test = test
self.ui = Ui_UiArtikelkarte()
self.ui.setupUi(self)
self.show()
def closeEvent(self, event):
print(self.test)
event.accept()
app = QtWidgets.QApplication(sys.argv)
win1 = UiMain("hello")
sys.exit(app.exec_())
发布于 2019-01-31 10:21:23
我认为你必须将你的子窗口作为属性来传递:
class UiMain(QtWidgets.QMainWindow):
def __init__(self, subwindow):
super(UiMain, self).__init__()
self.subwindow = subwindow
self.ui = Ui_UiArtikelkarte()
self.ui.setupUi(self)
self.show()
def closeEvent(self, event):
some_function(self, source=self.subwindow)
event.accept()
app = QtWidgets.QApplication(sys.argv)
win1 = UiMain(subwindow)
sys.exit(app.exec_())
https://stackoverflow.com/questions/54457733
复制相似问题