0
我有一個頂層窗口包含一個簡單的條目窗口小部件和兩個按鈕。 (Class opc)更新默認值條目窗口小部件
條目窗口小部件已分配默認值「test」。我想要做的是在用戶輸入新值時更新此默認值,並在窗口的新實例中將其顯示爲默認值。
當我更改值並保存更改時,窗口的新實例始終顯示「測試」而不是新輸入。
這樣做的最好方法是什麼?我應該使用「Stringvar」嗎?
import tkinter as tk
from tkinter import ttk
class TEP(tk.Frame):
def __init__(self, parent):
tk.Frame.__init__(self, parent)
self.parent = parent
label=tk.LabelFrame(self, text="REFERENCIAS", height=180, labelanchor="n",borderwidth="2",relief="groove")
label.pack(fill="x",padx=10,pady=10)
class opc(tk.Frame):
def __init__(self, parent,*args, **kwargs):
tk.Frame.__init__(self, parent,*args, **kwargs)
self.parent = parent
self.grid()
datlab = tk.LabelFrame(self.parent, text="Información", labelanchor="nw",borderwidth="2",relief="groove")
datlab.grid(column=0,row=0,padx=5,pady=3,ipadx=5,ipady=5)
labelproy=tk.Label(datlab,text="Proyecto:",padx=5,pady=5)
labelproy.grid(column=0, row=0, sticky=tk.W)
self.entrproy=tk.Entry(datlab,width=27)
self.entrproy.insert(0,"Test")
self.entrproy.grid(row=0,column=1,sticky=tk.W,padx=5)
self.ok = ttk.Button(self.parent, text="OK", command=self.getdata)
self.ok.grid(column=0,row=4,sticky=tk.W,padx=50,pady=7)
self.cancel = ttk.Button(self.parent, text="Cancelar", command=self.parent.destroy)
self.cancel.grid(column=0,row=4,sticky=tk.E,padx=50,pady=7)
self.parent.bind('<Return>',self.getdata)
def getdata(self,*args):
self.Proyecto=self.entrproy.get()
print(self.Proyecto)
self.parent.destroy()
def main():
root = tk.Tk()
app = TEP(root)
app.pack(side="top", fill="both", expand = True)
menubar=MenuBar(root)
menubar.add
root.config(menu=menubar)
root.title("App")
root.focus_force()
# root.wm_state('zoomed')
root.minsize(width=1000, height=420)
root.columnconfigure(0,weight=1)
root.rowconfigure(0,weight=1)
root.mainloop()
if __name__ == '__main__':
main()
您只將新值存儲在'self.Proyecto'中,而不是使用此值重新加載Entry小部件。你可以通過在第一次創建時用'self.Proyecto'加載你的Entry並且再次按下按鈕來實現這一點。 'self.Proyecto'必須初始化爲'self.Proyecto ='test''。 – Joules
謝謝焦耳。我應該在「getdata」函數中執行此操作嗎? – Eduardo
您已經在getdata函數中更新'self.Proyecto'。你需要找到一種方法來存儲這個值,所以當你的窗口再次通過'__init__'時,它不會被'test'替換。 – Joules