私はGUIを使ってプログラムを作っています。ボタンをクリックすると、Entryウィジェットに入力されたテキストがLabelウィジェットに表示されます。ボタンが押された後に表示されるこれまでのところだけです:TkInter(Python)のウィジェット間でデータを転送する方法
(PY_VAR0 + PY_VAR1)^ PYVAR2
これは、プログラム全体のコードで、私はフレームレイアウトとしてクラスを使用しています。このコードは、必要に応じて提供することもできますが、関連性がないと判断しています。
import math
from tkinter import *
app = Tk()
a_input = ParamIn(app, "Please enter A:")
a_input.pack()
b_input = ParamIn(app, "Please enter B:")
b_input.pack()
n_input = ParamIn(app, "Please enter n:")
n_input.pack()
int1 = IntVar()
int2 = IntVar()
int3 = IntVar()
form = StringVar()
form.set('(%s + %s)^%s' % (int1, int2, int3))
def update_form():
number1 = a_input.number.get()
number2 = b_input.number.get()
number3 = n_input.number.get()
int1.set(number1)
int2.set(number2)
int3.set(number3)
a_input.number.delete(0, END)
b_input.number.delete(0, END)
n_input.number.delete(0, END)
Button(app, text = "Contine", command = update_form).pack(pady = 10)
Label(app, relief = SUNKEN, textvariable = form).pack(padx = 10, pady = 5, side = "bottom")
app.mainloop()
なぜ私の論理が正しいと感じるので、mainloopの前のプログラムの最後のラベルが更新されないのか分かりません。私はプログラミングに慣れていないので、愚かな間違いかもしれません。
自分のクラスにアプリケーションをラップするのはかなり標準的だと思います。そうすることで、すべてのコンポーネントがクラス内で簡単にアクセスできるようになります。 http://infohost.nmt.edu/tcc/help/pubs/tkinter/minimal-app.html – monkut