如何使用变量 class 来更新 Toplevel 或 Tk 的标题?
How can I use variable class to update Toplevel or Tk's title?
如何将变量 class(tkinter.StringVar()
、tkinter.IntVar()
等)分配给 Toplevel 或 Tk 的标题文本?我当前的代码如下所示:
import tkinter as tk
root = tk.Tk()
root.title("Untitled")
titleVar = tk.StringVar()
titleVar.set("Something")
def change_title():
titleVar.set("Title changed!")
print(titleVar.get())
tk.Button(text="Update", command=change_title).pack()
root.mainloop()
从未尝试过,但基于 documentation,trace
方法可能会满足您的需求。
由于链接文档只有 "FIXME",我会尝试
def testCallback(*args):
root.title(titleVar.get())
titleVar.trace("w",testCallback)
之后,当有人修改 titleVar
时,它应该会传播到标题中。可以使用 What are the arguments to Tkinter variable trace method callbacks?
的建议对其进行改进
但是我还没有尝试过这些,而且我也看到虽然这就是你的问题的标题(这就是为什么我把它留在这里),但在描述中你似乎是更感兴趣的是在其他人更改标题时收到通知。
如何将变量 class(tkinter.StringVar()
、tkinter.IntVar()
等)分配给 Toplevel 或 Tk 的标题文本?我当前的代码如下所示:
import tkinter as tk
root = tk.Tk()
root.title("Untitled")
titleVar = tk.StringVar()
titleVar.set("Something")
def change_title():
titleVar.set("Title changed!")
print(titleVar.get())
tk.Button(text="Update", command=change_title).pack()
root.mainloop()
从未尝试过,但基于 documentation,trace
方法可能会满足您的需求。
由于链接文档只有 "FIXME",我会尝试
def testCallback(*args):
root.title(titleVar.get())
titleVar.trace("w",testCallback)
之后,当有人修改 titleVar
时,它应该会传播到标题中。可以使用 What are the arguments to Tkinter variable trace method callbacks?
但是我还没有尝试过这些,而且我也看到虽然这就是你的问题的标题(这就是为什么我把它留在这里),但在描述中你似乎是更感兴趣的是在其他人更改标题时收到通知。