當條目是由另一個函式創建時,我無法通過一個函式洗掉內容。
def recipe_add():
recepty_add_window = Toplevel()
recepty_add_window.geometry("400x400")
name_entry_label=Label(recepty_add_window, text="Name:").grid(row=1,column=0)
name_entry = Entry(recepty_add_window, width = 50, textvariable=name_var).grid(row=1, column=1,padx=5)
b_add = Button(recepty_add_window, text="Add recipe", width=50, command=add_recipe).grid(row=6, columnspan=2, pady=5, padx = 5)
add_recipe 里面有 name_entry.delete 函式。
def add_recipe():
name_entry.delete(0,END)
我收到:NameError:未定義名稱'name_entry'。
我試圖通過忘記所有網格并將其重新放在那里,使 name_entry 全域或將 Toplevel 更改為“單視窗應用程式”,但似乎沒有任何幫助。謝謝大家的幫助。
uj5u.com熱心網友回復:
您需要在定義它的地方宣告一個全域變數,而不是在您使用它的地方。此外,.grid()回傳None,因此您首先要將條目存盤在變數中,然后呼叫grid():
from tkinter import *
def recipe_add():
global name_entry
name_var = StringVar()
name_entry = Entry(recepty_add_window, width = 50, textvariable=name_var)
name_entry.grid(row=1, column=1,padx=5)
def add_recipe():
name_entry.delete(0,END)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/462079.html
標籤:Python tkinter tkinter-entry
上一篇:如果我將一個視窗編程為在打開一個新視窗后關閉它為什么不關閉?
下一篇:我可以在回圈中只定義一次整數嗎?
