【问题标题】:Close current window and open new one in conditions pyqt关闭当前窗口并在条件pyqt中打开新窗口
【发布时间】:2022-07-02 12:15:52
【问题描述】:
如果条件为真(不点击任何按钮),如何关闭当前窗口并打开新窗口并再次运行hole脚本。我尝试了很多方法,但都没有成功
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
.....
if __name__ == "__main__":
# print(deivce_data)
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
if deivce_data == data:
'''if this condition is true close the current window and run script again'''
【问题讨论】:
标签:
python
pyqt5
qt-designer
ui-design
【解决方案1】:
您可以通过控制 QApplication() 的执行句柄来做到这一点。
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton
class Ui_MainWindow(QMainWindow):
def __init__(self):
super().__init__()
if __name__ == "__main__":
# print(deivce_data)
app1 = QApplication(sys.argv)
ui1 = Ui_MainWindow()
ui1.setWindowTitle("My App1")
ui1.show()
finish_app1 = app1.exec_()
if True:
'''if this condition is true close the current window and run script again'''
app2 = QApplication(sys.argv)
ui2 = Ui_MainWindow()
ui2.setWindowTitle("My App2")
ui2.show()
finish_app2 = app2.exec_()
handle_finish = finish_app2
else:
handle_finish = finish_app1
sys.exit(handle_finish)
希望这会有所帮助。