所以我试图制作一个弹出屏幕。我的代码如下:
def Popup_scale():
popup = Tk()
popup.wm_title("!")
label = Label(popup, text="Controleer of de weegschaal is aangesloten!", font=LETTER_20)
label.pack(side='top', fill='x', padx=10)
label = Label(popup, text="En druk daarna op Oké", font=LETTER_20)
label.pack(side='top', fill='x', pady = 10, padx=10)
B_ok = Button(popup, text='oké', command = popup.destroy, font=LETTER_20)
B_ok.pack(pady=10)
popup.mainloop()
现在这个工作正常,但是每当我按下“Oke”按钮时我都希望我的程序重启。因此我使用此命令:
os.execv(sys.executable, ['python'] + sys.argv)
但是当我使用该命令而不是popup.destroy时,程序会在创建按钮的那一刻执行命令。我无法弄清楚为什么。当我将代码更改为以下代码时:
def Popup_scale():
def Reboot():
popup.destroy
popup = Tk()
popup.wm_title("!")
label = Label(popup, text="Controleer of de weegschaal is aangesloten!", font=LETTER_20)
label.pack(side='top', fill='x', padx=10)
label = Label(popup, text="En druk daarna op Oké", font=LETTER_20)
label.pack(side='top', fill='x', pady = 10, padx=10)
B_ok = Button(popup, text='oké', command = Reboot(), font=LETTER_20)
B_ok.pack(pady=10)
popup.mainloop()
destroy命令将不再起作用。但是,如果我使用此代码但是使用de reboot程序行,则在创建按钮时,程序执行命令会遇到同样的问题。
我做错了什么?