首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >StringVar()返回PY_VAR0而不是字符串

StringVar()返回PY_VAR0而不是字符串
EN

Stack Overflow用户
提问于 2022-02-11 20:33:03
回答 1查看 222关注 0票数 0

我试图用以下代码将文本设置到我的标签中:

代码语言:javascript
运行
复制
import tkinter as tk

class Window(tk.Tk):
    def __init__(self):
        super().__init__()
        self.title("Hello Tkinter")
        self.label_text = tk.StringVar()
        self.label_text.set("Choose One")
        self.label = tk.Label(self, text=self.label_text)
        self.label.pack(fill=tk.BOTH, expand=1, padx=100, pady=30)
        hello_button = tk.Button(self, text="Say Hello", command=self.say_hello)
        hello_button.pack(side=tk.LEFT, padx=(20, 0), pady=(0, 20))
        goodbye_button = tk.Button(self, text="Say Goodbye", command=self.say_goodbye)
        goodbye_button.pack(side=tk.RIGHT, padx=(0, 20), pady=(0, 20))
        
    def say_hello(self):
        self.label_text.set("Hello World")

    def say_goodbye(self):
        self.label_text.set("Goodbye! \n (Closing in 2 seconds)")
        self.after(2000, self.destroy)

if __name__ == "__main__":
    window = Window()
    window.mainloop()

但我得到的结果是:

EN

回答 1

Stack Overflow用户

发布于 2022-10-01 15:37:23

问题是

代码语言:javascript
运行
复制
 self.label = tk.Label(self, text=self.label_text)

您需要添加像下面这样的.get():

代码语言:javascript
运行
复制
 self.label = tk.Label(self, text=self.label_text.get())

其他明智的做法是默认使用PY_VARO

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71086246

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档