私は問題が何であるかを知っています。それを修正する方法はわかりません。 self.healthは変数に一度格納され、その後は再読み込みされません。私は使ってみました:@property。しかし、私は昨日@propertyについて学んだだけなので、1:私はそれを正しく使用していないか、2:この状況では使用できません。クリックしたときにtxtが変化するtkinterボタン
import tkinter as tk
class button_health:
def __init__(self):
self.health = 5
def hit(self, event):
self.health -= 1
bob = button_health()
window = tk.Tk()
button = tk.Button(window, text = bob.health #I want this to update)
button.bind("<Button-1>", bob.hit)
button.pack()
window.mainloop()
私は何を目指してることは「5」と言ってから始まり、画面上の簡単なTkinterのボタンを生成するコードのためであるが、その後、あなたがそれをクリックすると、「4」と言い、その後、など「3」をクリックしてください
ありがとうございました。私はあなたの反応を完全に理解するために少し勉強しなければならないでしょう(私は前にラムダを使ったことはありません)。しかし、それは良いようです。 私は、2番目のソリューションの構文に従うことに苦労しています。私はまだPythonでかなりのnoobです。 button.health = 5#この種の構文は以前に発生していません。私はこれが何をするのか分からない。それはボタン内の "健康"と呼ばれる変数を作成し、それに5を割り当てますか? –
'button.health = 5'は' button'内に 'health'という名前の*属性*を作成します。そうすれば、誰が健康であるかを把握するのが簡単になります。 'button.health'の' health'は常に 'button'に一意です。 – abccd
私の場合のlambdaは、 'command'が定義された後に 'button_health(button)'が実行されないようにします。 – abccd