擅长:python、mysql、java
<p><strong>编辑:</strong>原始帖子的解决方案是在label小部件中使用<code>text=localtime2.get()</code>而不是{<cd2>}(出于某种奇怪的原因<em>)。但是,我最初的答案仍然是正确的,因为应该使用tkinter变量,所以我会继续这样做。在</p>
<hr/>
<p>必须在tkinter小部件中使用tkinter变量,而不是普通的python变量。Tkinter变量与普通变量略有不同,必须首先定义为特定的数据类型。例如,必须首先创建包含字符串的变量,如下所示:</p>
<pre><code>string_variable = tk.StringVar()
</code></pre>
<p>同样,将创建如下布尔值:</p>
^{pr2}$
<p>有关tkinter变量的详细信息,请阅读<a href="http://effbot.org/tkinterbook/variable.htm" rel="nofollow noreferrer">here</a>。在</p>
<p>这些变量实际上是类,因此要设置它们,必须调用<code>.set()</code>方法。因此,要将tkinter String变量设置为<em>“a String”</em>,请使用以下代码:</p>
<pre><code>string_variable = tk.StringVar() # Create the variable
string_variable.set("a string") # Set the value of the variable
</code></pre>
<hr/>
<p>因此,要修复代码,您需要使<code>localtime2</code>成为tkinter变量,并使用<code>.set()</code>方法将其设置为time。在</p>
<p>示例:</p>
<pre><code>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)
</code></pre>