質問は簡単です。画像Bを左にcanvas.moveすると同時に、画像Aを右にcanvas.moveする方法はありますか?
以前、マルチプロセッシングを使用して複数のキャンバスを重ねて実行することでこれを実現しましたが、これは私が作成した回避策です。
これを行うための公式/より良い方法はありますか?どんな提案も役に立ちます。
あなたがする必要がある特別なことは何もありません。move
2つのオブジェクトのメソッドを同時に呼び出すだけです。画面が更新されると、両方が同時に更新されます。
たとえば、次のコードは、キーボードのスペースキーを押すたびに各画像を5ピクセル移動します。
import tkinter as tk
root = tk.Tk()
canvas = tk.Canvas(root, background="black", width=400, height=400)
canvas.pack(fill="both", expand=True)
image_a = tk.PhotoImage(width=50, height=50)
image_b = tk.PhotoImage(width=50, height=50)
image_a.put(("#ff0000",), (0, 0, 49, 49))
image_b.put(("#00ff00",), (0, 0, 49, 49))
canvas.create_image(175, 200, image=image_a, tags=("image_a",))
canvas.create_image(225, 200, image=image_b, tags=("image_b",))
def sync_move(event):
canvas = event.widget
canvas.move("image_a", 5, 0)
canvas.move("image_b", -5, 0)
canvas.bind("<space>", sync_move)
canvas.focus_set()
root.mainloop()
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加