1

所以我有一个 Tkinter 小部件,它可以在线抓取结果。我希望它向小部件输出一些值,而不是 Python IDLE 控制台。我该怎么做?我会以编程方式/动态设置标签吗?我查找的每个示例都是如何将内容最初放入条目小部件中,这不是我想要的。

例如,假设您有一个小部件框

----------
[        ]
[ Search ]
[        ]
[ Output ]
----------

每当我单击搜索时,我都希望输出值显示在输出部分。

我该怎么做?

4

3 回答 3

0

You can modify the contents of a label with the configure method. For example:

import Tkinter as tk
import time

class SampleApp(tk.Tk):
    def __init__(self):
        tk.Tk.__init__(self)
        self.button = tk.Button(self, text="Show time", command=self.on_show_time)
        self.label = tk.Label(self)
        self.button.pack()
        self.label.pack()

    def on_show_time(self):
        self.label.configure(text=time.asctime())

app = SampleApp()
app.mainloop()
于 2012-06-27T16:23:20.300 回答
0

当然可以。您可以设置一个变量来保存 Tkinter 标签的值。使用该变量,您可以随时调用 .get() 和 .set() 对其进行更改。

下面是一个简单的例子,它只是用 time.time() 的当前值更新标签

import Tkinter
import time

class DynamicLabelExample(Tkinter.Frame):
   def __init__(self, parent):
      Tkinter.Frame.__init__(self, parent)
      self.pack()
      Tkinter.Button(self, text="Search", command=self.update_output).pack()
      self.output_container = Tkinter.StringVar()
      Tkinter.Label(self, textvariable=self.output_container).pack()


   def update_output(self):
      self.output_container.set(time.time())

root = Tkinter.Tk()
ex = DynamicLabelExample(root)
root.mainloop()

self.output_container是我们每次按下按钮时都会操作的 Tkinter StringVar。

资源

于 2012-06-27T13:40:21.583 回答
0

是的,你会在 gui 中设置一个标签。您可以使用text=StringVar. 您拥有的变量在哪里StringVar,当您更改 的值时StringVar,它会更改标签的值。此外,StringVar必须是一个tkinter stringvar对象。

于 2012-06-27T13:23:16.407 回答