擅长:python、mysql、java
<p>您已经有一个无限循环在运行,因此不应该尝试添加另一个循环。相反,可以使用<code>after</code>方法使函数每隔一段时间重复调用一次。在您的情况下,可以替换为:</p>
<pre><code>def updateStock(self):
while True:
labelName = str(s) + "Label"
stockPrice = get_quote(s)
self.labelName = Label(self.myContainer1, text = s.upper() + ": " + str(stockPrice))
self.labelName.pack()
time.sleep(10)
</code></pre>
<p>。。。有了这个:</p>
<pre><code>def updateStock(self):
labelName = str(s) + "Label"
stockPrice = get_quote()
self.labelName = Label(self.myContainer1, text = s.upper() + ": " + str(stockPrice))
self.labelName.pack()
self.after(10000, self.updateStock)
</code></pre>
<p>这将得到一个报价,添加一个标签,然后安排在10秒(10000毫秒)内再次调用自己。</p>
<p>但是,我怀疑你是否想每10秒创建一个新标签,是吗?最后,窗口将充满标签。相反,您可以创建一次标签,然后在每次迭代中更新标签。例如,在init中创建一次<code>self.label</code>,然后在循环中可以执行以下操作:</p>
<pre><code>self.labelName.configure(text=s.upper() + ": " + str(stockPrice))
</code></pre>