我在代码中的 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)
Run Code Online (Sandbox Code Playgroud)
这就是我在有关此变量的代码中的全部内容,并且在终端中没有出现任何错误。它根本不显示。
编辑:原始帖子的解决方案是在标签小部件中使用text=localtime2.get()而不是使用textvariable=localtime2(出于某些奇怪的原因)。但是,我原来的答案仍然是正确的,因为应该使用 tkinter 变量,所以我会坚持下去。
您必须在 tkinter 小部件中使用 tkinter 变量,而不是普通的 python 变量。Tkinter 变量与普通变量略有不同,必须首先定义为特定的数据类型。例如,必须首先像这样创建一个包含字符串的变量:
string_variable = tk.StringVar()
Run Code Online (Sandbox Code Playgroud)
同样,将创建一个布尔值,如下所示:
boolean_variable = tk.BooleanVar()
Run Code Online (Sandbox Code Playgroud)
阅读此处了解有关 tkinter 变量的更多信息。
这些变量实际上是类,因此为了设置它们,必须调用该.set()方法。因此,要将 tkinter 字符串变量设置为“字符串”,您将使用以下代码:
string_variable = tk.StringVar() # Create the variable
string_variable.set("a string") # Set the value of the variable
Run Code Online (Sandbox Code Playgroud)
因此,要修复您的代码,您需要创建localtime2一个 tkinter 变量并使用该.set()方法将其设置为时间。
例子:
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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12104 次 |
| 最近记录: |