How to unconditionally re-run a python program based on button click?

后端 未结 2 1595
旧时难觅i
旧时难觅i 2021-01-21 18:41

At the end of my program execution, I want a popup message to appear that has a button which can re-run a program. Obviously, I will have setup a function that the button calls

2条回答
  •  长发绾君心
    2021-01-21 18:50

    This is potentially an over-simple approach, but say your existing program looks something like:

    def my_app():
        # Code goes here
    
    if __name__ == "__main__":
        my_app()
    

    Instead wrap it like this:

    def my_app():
        print("App is running!")
        # Your app code goes here
        print("App is exiting!")
        # On exit popup a prompt where selecting 'restart' sets restart_on_exit to True
        # Replace input() with a popup as required
        if input("Type y  to restart the app! ").lower() == "y":
            return True
    
    if __name__ == "__main__":
        restart_on_exit = True
        while restart_on_exit:
            restart_on_exit = my_app()
    

    That way the code will loop, running my_app over and over again, if the popup sets restart_on_exit to True before the loop repeats.

提交回复
热议问题