重新启动程序tkinter

7 人关注

我想知道如何创建一个重启按钮,一旦点击就可以重启整个脚本。我的想法是,先销毁窗口,然后再解除销毁,但显然没有解除销毁的功能。

2 个评论
python
tkinter
NeelJ 83
NeelJ 83
发布于 2017-01-15
3 个回答
j_4321
j_4321
发布于 2021-01-21
已采纳
0 人赞同

我在这个网站上找到了一个对一般的Python程序进行处理的方法。 https://www.daniweb.com/programming/software-development/code/260268/restart-your-python-program .我写了一个带有基本tkinter GUI的例子来测试它。

import sys
import os
from tkinter import Tk, Label, Button
def restart_program():
    """Restarts the current program.
    Note: this function does not return. Any cleanup action (like
    saving data) must be done before calling this function."""
    python = sys.executable
    os.execl(python, python, * sys.argv)
root = Tk()
Label(root, text="Hello World!").pack()
Button(root, text="Restart", command=restart_program).pack()
root.mainloop()
    
Elder Druid
Elder Druid
发布于 2021-01-21
0 人赞同

下面的解决方案也很有效,但相当苛刻,也就是说,整个环境都会丢失。

# kills the whole application and starts a fresh one
def restart():
    root.destroy()
    root = Tk()
    root.mainloop()
    
MacStock Tech  Gaming
MacStock Tech Gaming
发布于 2021-01-21
0 人赞同

I would Like to Use this Function:-

首先是进口 os Module

import os

Then Use this Code:-

# Restarts the Whole Window    
def restart():
    root.destroy()
    os.startfile("main.py")

或者如果你想没有控制台,那么只需将文件的扩展名改为.pyw

并运行此代码:-