我有一个框架,让我们说:
import Tkinter as tk
class Page1(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent)
label1 = G.tk.Label(self, text="Change me!")
label1.pack(pady=10,padx=10)
label2 = G.tk.Label(self, text="Change me too!")
label2.pack(pady=10,padx=10)
现在我希望能够改变“改变我!”和“改变我!”通过按页面上的按钮来发送文本。在我的实现中,这是出于本地化目的。
我目前的实现只针对每种语言都有单独的框架,但维护起来非常麻烦。我想为每个内容页面只有一个框架,并且只更改显示的文本。这可能吗?
我在文档中看到了StringVar
,但没有关于如何使用它的非常清晰的指南。
答案 0 :(得分:1)
您必须使用self.label1
和self.label2
才能访问其他方法中的标签。
您可以将功能分配到Button
并使用self.label["text"] = "new text"
import tkinter as tk
class Page1(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent)
self.label1 = tk.Label(self, text="Change me!")
self.label1.pack()
self.label2 = tk.Label(self, text="Change me too!")
self.label2.pack()
button = tk.Button(self, text="Change", command=self.change_text)
button.pack()
def change_text(self):
self.label1["text"] = "New text!"
self.label2["text"] = "New text too!"
root = tk.Tk()
Page1(root, None).pack()
root.mainloop()