1

How to close the current window and open new window if condition is true(without any button clicked) and run the hole script again. I have tried so many method but not success

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'''
Rana Talha
  • 111
  • 8

1 Answers1

1

You can do this by controlling the execution handle of 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)

Hope this helps.