2017-05-06 3 views
0

私は、Tkinterを使ってPythonで単純なnoughts-and-crossesゲームを書いています。これを行うには、私はイベントバインディングを追加する必要があることを知っているが、私は円(円弧)を作成するとき、私は戻ってオブジェクトを取得しない代わりにID番号をため方法を知らない。このID番号を使用してイベントバインディングを作成するにはどうすればよいですか?Tkinterがアークにバインドする

答えて

0

ID番号を使用してイベントバインディングを作成する代わりに、タグシステムを使用してこのことについてお勧めします。あなたの楕円形のオブジェクトを作成するとき。 canvas.create_oval(100, 100, 200, 200)、括弧の中に,tag="tag_name"を追加して、作成したオブジェクトにタグを適用します。たとえば、キャンバスのtag_bind関数を使用して、このタグに明示的にバインドできます。

あなたはタグ「楕円形」との楕円形を作成した後、このようなものを作成することができます。

canvas.tag_bind("oval", "<ButtonPress-1>", pressed_oval) 

ユーザーがオブジェクトをクリックした場合にのみ、これはその後、pressed_oval()と呼ばれるあなたの関数を呼び出すと、あなたがタグ「楕円形を与えました"(それにイベントを渡す)。

これがうまく始めるのに役立ちます。

tag_bindの場合、オブジェクトはまだキャンバス上にある必要がありますので、楕円の状態を非表示に変更するか、忘れてしまいます。 fill="")。

関連する問題