2

ウィジェット(キャンバスに描かれた長方形など)が存在するかどうかを確認してから削除したいと思います。

これが私の問題です:長方形を削除する2つの方法があります。1つは(クリックされたときに長方形を削除する)を使用してボタン1にバインドされ、もう1つbindの方法は(を使用してチェックされた)一定時間クリックされない場合に長方形を削除しますWidget.after。ユーザーがクリックしなかった長方形を数えたいので、2番目の方法で長方形が存在するかどうかを確認したいと思います。考えられる唯一の方法は、既に削除されているかどうかを確認することです。これを行う方法はありますか?もちろん、button-1イベントハンドラー内に変数を設定して、他のメソッドからチェックすることもできます。Tkinterしかし、「アイテムが存在する」などのメソッドを提供するかどうかを知りたかっただけです。

編集:まあ、私はちょうど1つのトリックを見つけました。削除されたウィジェットでitemconfigを使用すると、空のセットが取得されます。その値を使用して、ウィジェットがすでに削除されているかどうかを確認します。それがエレガントな方法かどうかはわかりませんが。

4

1 に答える 1

4

Canvas.find_allキャンバス上のすべてのアイテムのタプルを取得するために使用できるように見えます。in次に、特定のアイテムがそのタプルであるかどうかを確認できます。例えば:

if item in my_canvas.find_all():
   my_canvas.delete(item)
else:
   print("Item not on canvas")
于 2012-11-01T19:07:35.743 に答える