1

だから私は結果をオンラインでスクレイプするTkinterウィジェットを持っています。Python IDLEコンソールではなく、ウィジェットにいくつかの値を出力したいと思います。どうすればいいですか?プログラム的/動的にラベルを設定しますか?私が調べたすべての例は、コンテンツを最初にエントリウィジェットに配置する方法ですが、これは私が望んでいることではありません。

たとえば、ウィジェットボックスがあるとします

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

[検索]をクリックするたびに、出力値を出力セクションに表示したいと思います。

どうすればいいですか?

4

3 に答える 3

0

はい、GUIにラベルを設定します。を使用して、コード全体でラベルを動的に変更できますtext=StringVarStringVar変数はどこにあり、の値をStringVar変更すると、ラベルの値が変更されます。また、オブジェクトでStringVarある必要がありtkinter stringvarます。

于 2012-06-27T13:23:16.407 に答える
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ボタンを押すたびに操作するTkinterStringVarです。

ソース

于 2012-06-27T13:40:21.583 に答える
0

メソッドを使用して、ラベルの内容を変更できますconfigure。例えば:

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 に答える