我使用qtgenerator创建了几个窗口,并使用这种插槽隐藏当前窗口并显示另一个窗口:
SearchResearchScreen.py
class Ui_ResearchMenu(object):
def setupUi(self, ResearchMenu):
...
def retranslateUi(self, ResearchMenu):
...
def edit_clicked1(self):
self.window = QtWidgets.QMainWindow()
self.ui = Ui_EditNewResearch()
self.ui.setupUi(self.window)
self.window.show()
ResearchMenu.hide()
self.timer = QtCore.QTimer()
self.timer.setInterval(100)
self.timer.timeout.connect(self.checkVar)
self.timer.start()
EditresearchScreen.py-
class Ui_EditNewResearch(object):
def setupUi(self, EditNewResearch):
...
def retranslateUi(self, EditNewResearch):
...
def btn_Cancel_clicked(self):
global status
status = False
self.window = QtWidgets.QMainWindow()
self.ui = Ui_ResearchMenu()
self.ui.setupUi(self.window)
self.window.show()
EditNewResearch.hide()
当点击一个按钮时,这可以正常工作,之后,在第二个窗口中,我使用相同的代码返回第一个窗口,但应用程序崩溃。除非我对.hide()
进行注释,否则我无法返回到同一个窗口,而是在旧窗口仍然存在于后台时打开一个新窗口
如何在程序不崩溃的情况下通过不同的窗口
我使用QTimer解决了这个问题。您应该在第一个窗口中使用QTimer,该窗口将不断检查您将在这两种情况下更新的任何全局变量
创建如下QTimer:-
并检查是否存在这样的变量
请记住,在关闭第二个窗口时,需要将这个
status
变量设置为False相关问题 更多 >
编程相关推荐