[英]How to give value to main from function
在我的程序中有一個帶有 windows 選項的主要部分,我需要 go 到 Greetings def。
if __name__ == "__main__":
web = Tk()
web.configure(background = "black")
web.title("#######")
web.geometry("600x400")
web.iconbitmap('icon.ico')
web.resizable(False, False)
web.protocol("WM_DELETE_WINDOW", close)
Greetings(log)
def Greetings(log):
log.withdraw()
def clear_form():
greetings_entry_name.delete(0, END)
greetings_entry_password.delete(0, END)
greetings_frame = Frame(web, background = "black", pady = 10)
greetings_frame.pack()
但是我有另一個 def 和另一個 window(登錄),我需要“日志”來授予隱藏登錄 window 的權限。
def login():
web.withdraw()
log = Tk()
...
...
registration_back_button = Button(login_frame, text = "Go back", bg = "#293133", fg = "white", command = Greetings(log))
registration_back_button.pack(pady = 15)
return log
所以如果我想編譯我有可預測的錯誤
名稱“日志”未定義
我怎樣才能給 Greetings 日志或者不這樣做。
我不確定這是否是您要查找的內容,但您可以使用嵌套函數,因此您的Toplevel
window 已定義。 您不能將return
與按鈕一起使用。 您的代碼不可重現,因此我創建了一個登錄名 window 的示例。我添加了grab_set()
以避免可以忽略登錄名 window。 我還使用了destroy()
而不是withdraw()
。 密碼:你不得通過
import tkinter as tk
window = tk.Tk()
def login():
log = tk.Toplevel(window)
log.grab_set()
def check_pw():
password = entry1.get()
if password == 'You shall not pass':
label1 = tk.Label(window, text='Login successful!')
label1.pack()
button1.destroy()
log.destroy()
else:
label2 = tk.Label(log, text='Wrong password')
label2.pack()
entry1 = tk.Entry(log)
entry1.pack()
button2 = tk.Button(log, command=check_pw, text='Login')
button2.pack()
button1 = tk.Button(window, command=login, text='Press for login')
button1.pack()
window.mainloop()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.