【问题标题】: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)
    

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2012-10-17
      • 2014-08-29
      • 2015-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多