今私はインスタンス変数とクラスの概念を理解しています。私はこれまでに問題があったことは一度もなく、頻繁に使用しています。しかし、私がMainWindowクラスを作ると、インスタンス変数にアクセスしようとするまで、すべてが桃色です。Python Tkinter - メインウィンドウクラスの外側から変数を変更するにはどうすればいいですか?
http://pastebin.com/tDs5EJhiは完全なコードですが、この時点で、それだけで、ラベルやフレームを配置していますし、その他もろもろ、実際のロジックが起こっていません。窓はよく見え、何も悪いことは起こりません。
私の質問は、私は外窓の内側に変更する事をしようとすることになります。私は、通常のように、クラスのインスタンスを作成し、そこから変数を変更することができたと考えましたが(Tkinterはそれについて素敵ではなく、Tkinterのメインループの結果だと思います。 )。
ここで私のクラスのメインウィンドウ(のちらほらだ)私はインスタンス変数を編集する方法を学んだ方法です(207 LN)
...
self.C4 = Tk.PhotoImage(file="temp.png")
self.card4 = self.CardCanvas.create_image(120,46,image=self.C4, state=Tk.NORMAL)
#self.CardCanvas.itemconfig(4, state=Tk.HIDDEN) # < It works here
...
self.root.mainloop()
window = MainWindow()
window.CardCanvas.itemconfig(4, state=Tk.HIDDEN) # < It doesn't work here
とのトラブルを抱えているという。ウィンドウがポップアップした場合、それはクラス内でそれをしたのと同じようitemconfigコマンドは、実際には適用されません(または多分それはやったとウィンドウがちょうど更新されませんでした?)し、ウィンドウを閉じた後、私はこのエラーを取得:
私は今、ウィンドウが閉じられたことを、もはや存在しない変数にメソッドを適用しようとしているという理由だけであると仮定し_tkinter.TclError: invalid command name
。
私はMainWindowクラスを持っていますが、Tk.mainloop()が実行されているので、クラスの外部から変更することはできません。 itemconfigのように、実行後の他のコード。これらの変数を変更するにはどうすればよいですか?インスタンス変数宣言後のコードは、MainWindow()が閉じられるまで実行されないようです。
私は、「アフター」は、ウィンドウの更新に関して探していると思います。助けてくれてありがとう! – Hexic