如何解决如何在 Toplevel 上存储数据?
在顶层窗口中,如果使用 entry 小部件从用户那里获得一些输入后顶层关闭,然后通过按相同的按钮打开相同的顶层,有没有办法看到我们从入口小部件中的用户?
例如用户在顶层窗口输入他的名字,然后关闭顶层。然后用户打开同一个顶层,我希望它在条目小部件中看到他的名字。
解决方法
试试这个:
import tkinter as tk
last_user_input_entry = ""
last_user_input_button = 0
def on_closing():
global entry,top,last_user_input_entry,last_user_input_button,button_var
text = entry.get()
last_user_input_entry = text
last_user_input_button = button_var.get()
print("The text entered =",last_user_input_entry)
print("Checkbutton state =",last_user_input_button)
top.destroy()
def start_top():
global entry,button_var
top = tk.Toplevel(root)
top.protocol("WM_DELETE_WINDOW",on_closing)
entry = tk.Entry(top)
entry.pack()
entry.insert("end",last_user_input_entry)
button_var = tk.IntVar()
button_var.set(last_user_input_button)
button = tk.Checkbutton(top,variable=button_var)
button.pack()
root = tk.Tk()
button = tk.Button(root,text="Open toplevel",command=start_top)
button.pack()
root.mainloop()
基本上我们拦截窗口关闭并处理我们自己。我们还有一个存储最后用户输入的变量,我们在创建它后将其放入 tkinter.Entry
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。