1
私はTkinterで簡単なGUIを作っています(コードは下にあります) "Fetch"ボットンを押すと、コマンドラインのGUIからテキストが得られます。Tkinter変数
この例では、「ユーザー」は「Service Points Won」フィールドに0.5を、「Return Points Won」フィールドに0.7を入力しているとします。 私が達成したいことは、コマンドで表示された結果の隣にはマッチ「ラベル」を促していることである
0.5
0.7
私は次のような結果がコマンドプロンプトに表示されます「取得」ボタンを押すとも表示されます。
したがって、入力として0.5と0.7を使用して私の例に戻ることができます。私はコマンドプロンプトで結果を得たいと思います。
"Service Points Won" 0.5
"Return Points Won" 0.7
GUIスクリプト
from Tkinter import *
fields = 'Service Points Won', 'Return Points Won'
def fetch(variables):
for variable in variables:
print "%s" % variable.get()
def makeform(root, fields):
lab1= Label(text="Stats", font="Verdana 10 bold")
form = Frame(root)
left = Frame(form)
rite = Frame(form)
lab1.pack(side=TOP)
form.pack(fill=X)
left.pack(side=LEFT)
rite.pack(side=RIGHT)
variables = []
for field in fields:
lab1= Label()
lab = Label(left, text=field)
ent = Entry(rite)
lab.pack(anchor='w')
ent.pack(fill=X)
var = StringVar()
ent.config(textvariable=var)
var.set('0.5')
variables.append(var)
return variables
if __name__ == '__main__':
root = Tk()
vars = makeform(root, fields)
Button(root, text='Fetch',
command=(lambda v=vars: fetch(v))).pack()
root.bind('<Return>', (lambda event, v=vars: fetch(v)))
root.mainloop()
任意の提案ですか?
'variable'にはおそらく' .get() 'よりも多くのメソッドと属性があります。他のメソッドや属性の1つが、おそらくフィールドの名前を与えるでしょうか?あるいは、おそらく 'str(変数)'でもこのトリックがありますか? – Evert
@Evert、str(変数)はトリックを行いません。どのような方法や属性を使用できますか? – Wouter
'print(dir(variable))'はおそらく多くのオプションを明らかにします。あなたは最も論理的なものを試すことから始めることができます。ドキュメントも役に立ちます。 – Evert