Python
 Computer >> コンピューター >  >> プログラミング >> Python

矢印キーを使用してTkinterキャンバスで画像を移動する方法は?


Tkinter Canvasウィジェットは、Tkinterライブラリの用途の広いウィジェットの1つです。さまざまな形状、画像、アニメーションオブジェクトを作成するために使用されます。 move()を使用して、Canvasウィジェットで定義された画像に動的属性を提供できます。 メソッド。

move(Image、x、y)のパラメータとして画像と座標を定義します キャンバス内の画像を移動するメソッド。キャンバス内の画像の場所を追跡するために、画像をグローバルに宣言します。

これらの手順に従って、画像をキャンバス内で移動できるようにすることができます。

  • まず、Canvasウィジェットを定義し、それに画像を追加します。

  • move()を定義します キャンバス内で画像を動的にする機能。

  • キャンバス内で画像を移動できるようにする機能を使用して、矢印キーをバインドします。

# Import the required libraries
from tkinter import *
from PIL import Image, ImageTk

# Create an instance of tkinter frame
win = Tk()

# Set the size of the tkinter window
win.geometry("700x350")

# Define a Canvas widget
canvas = Canvas(win, width=600, height=400, bg="white")
canvas.pack(pady=20)

# Add Images to Canvas widget
image = ImageTk.PhotoImage(Image.open('favicon.ico'))
img = canvas.create_image(250, 120, anchor=NW, image=image)

def left(e):
   x = -20
   y = 0
   canvas.move(img, x, y)

def right(e):
   x = 20
   y = 0
   canvas.move(img, x, y)

def up(e):
   x = 0
   y = -20
   canvas.move(img, x, y)

def down(e):
   x = 0
   y = 20
   canvas.move(img, x, y)

# Bind the move function
win.bind("<Left>", left)
win.bind("<Right>", right)
win.bind("<Up>", up)
win.bind("<Down>", down)

win.mainloop()

出力

上記のコードを実行すると、矢印キーを使用してウィンドウ上を移動できる画像を含むウィンドウが表示されます。

矢印キーを使用してTkinterキャンバスで画像を移動する方法は?

矢印キーを使用して、キャンバス上のオブジェクトを移動できます。


  1. Tkinterで画像をボタンとして使用するにはどうすればよいですか?

    この例では、フォーム、ゲーム、ダイアログボックスなど、他の多くのアプリケーションで使用できる丸いボタンをウィンドウに作成します。 Tkinterで丸みを帯びたボタンを作成する最良の方法は、ボタンの目的の画像を使用して、フレーム内でクリック可能なボタンに変えることです。これは、 PhotoImage()を使用することで実際に可能になります ボタンの目的の画像を取得する機能。 したがって、次の手順で目的の画像をボタンにします まず、画像をクリック可能にするために使用できるダミーボタンを作成します。 PhotoImage(file)関数を使用してソースから画像を取得します。 B

  2. キャンバスで画像を中央に配置する方法PythonTkinter

    Tkinterを使用してGUIベースのアプリケーションを作成していて、Tkinterキャンバスに画像をロードしたいとします。 デフォルトでは、キャンバスはその幅と高さに応じて画像をロードしますが、「方向」を渡すことで、画像の位置を任意の方向(N、S、E、W、NS、EWなど)に操作できます。アンカーパラメータの値。アンカーは、画像関数とともに呼び出されるパラメータです。キャンバス内の画像の方向または位置を定義します。 アンカーパラメータを使用することで、テキストと画像を任意の方向に揃えることができます。今のところ、ラベルを使用して画像ラベルを作成します そのような機能、 Label(root