标签widg中的Python tkinter textvariable

2024-10-01 07:21:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我在代码的def中创建了一个名为“localtime2”的变量,然后有一个标签,上面写着“textvariable=localtime2”。问题是它没有显示关于变量的信息。在

localtime2 = time.asctime(time.localtime(time.time()))
tk.Label(roots, font=('arial', 16, 'bold'), textvariable=localtime2, bd=16, anchor="w").grid(row=2, column=0)

这就是我在代码中关于这个变量的全部,它不会在终端中出现任何错误。它根本就没有显示出来。在


Tags: 代码信息timedef标签labeltkfont
2条回答

每当tkinter变量发生变化时,更新会自动反映到任何地方。由于这个属性,您不能在这里使用普通的python变量。
尝试使用StringVar(),然后使用set()设置变量内容

编辑:原始帖子的解决方案是在label小部件中使用text=localtime2.get()而不是{}(出于某种奇怪的原因)。但是,我最初的答案仍然是正确的,因为应该使用tkinter变量,所以我会继续这样做。在


必须在tkinter小部件中使用tkinter变量,而不是普通的python变量。Tkinter变量与普通变量略有不同,必须首先定义为特定的数据类型。例如,必须首先创建包含字符串的变量,如下所示:

string_variable = tk.StringVar()

同样,将创建如下布尔值:

^{pr2}$

有关tkinter变量的详细信息,请阅读here。在

这些变量实际上是类,因此要设置它们,必须调用.set()方法。因此,要将tkinter String变量设置为“a String”,请使用以下代码:

string_variable = tk.StringVar() # Create the variable 
string_variable.set("a string") # Set the value of the variable

因此,要修复代码,您需要使localtime2成为tkinter变量,并使用.set()方法将其设置为time。在

示例:

localtime2 = tk.StringVar() # Create the localtime2 string variable
localtime2.set(time.asctime(time.localtime(time.time()))) # Set the variable
tk.Label(roots, font=('arial', 16, 'bold'), textvariable=localtime2, bd=16, anchor="w").grid(row=2, column=0)

相关问题 更多 >