我正在编写一个应用程序,其中主窗口小部件窗口打开第二个窗口小部件窗口,在第二个窗口小部件窗口中,我从用户获取一些输入并点击保存按钮,第二个窗口小部件窗口应该将数据保存到xml文件中并且应该关闭但是第二个窗口没有关闭 . 我尝试了谷歌的大部分内容,如 self.close(), self.destroy(),self.hide() self.window().hide(), self.window().destroy()
,它们都没有工作 .
我不想做 sys.exit()
,因为这是关闭完整的应用程序,但只需在单击保存按钮后关闭secondWidgetWindow,以便用户可以在第一个窗口小部件窗口中执行另一项工作 .
以下是片段:
FirstWidgetWindow.py
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_firstWidgetWindow(QtWidgets.QMainWindow):
def __init__(self,firstWidgetWindow):
super().__init__()
self.setupUi(firstWidgetWindow)
def setupUi(self, firstWidgetWindow):
### code to create Button ###
self.btnOpenNewWidgetWindow.clicked.connect(self.openNewWindow)
def openNewWindow(self):
self.secondWidgetWindow = QtWidgets.QWidget()
self.ui = Ui_secondWidgetWindow()
self.ui.setupUi(self.secondWidgetWindow)
self.secondWidgetWindow.show()
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
firstWidgetWindow = QtWidgets.QWidget()
ui = Ui_firstWidgetWindow(firstWidgetWindow)
firstWidgetWindow.show()
sys.exit(app.exec_())
secondWidgetWindow.py
class Ui_secondWidgetWindow(QtWidgets.QMainWindow):
def __init__(self):
super().__init__()
def setupUi(self, secondWidgetWindow):
### creating line edit to take input from user
### creating save button
self.btnSave.clicked.connect(self.saveUserInput)
def saveUserInput(self):
## saving user inputs in xml file
self.close() ## here i needs to close this window.
1 回答
按保存按钮后关闭第二个小部件:
试试吧: