2.7キャンバスキャンバス

2.7キャンバスキャンバス

実行後の効果は下図のようになりますが、
ここに画像の説明を挿入します
移動ボタンをクリックすると以下のようになります。
ここに画像の説明を挿入します

キャンバスウィジェット

canvas = tk.Canvas(window, bg='blue', height=100, width=200)
canvas.pack()

ここでのパラメータは、以前に学習したコンポーネントと同じであるため、個別の説明は省略します。インスタグラムのアイコンをダウンロードしたい場合は、下の画像を右クリックして保存してください。
ここに画像の説明を挿入します

image_file = tk.PhotoImage(file='ins.gif')
image = canvas.create_image(10, 10, anchor='nw', image=image_file)

ここのコードは主に、最終的に表示される左上隅の小さな画像を実現することです。この文は、この画像image_file = tk.PhotoImage(file='ins.gif')を保存するための変数を作成します。中のパラメータはキャンバスに絵を配置する座標で、ここでは絵の左上をアンカーポイントとして、与えられた座標を加算することで絵の位置が決まります。最後のパラメータの意味は、保存したばかりのイメージ変数を に割り当てることですins.gifimage = canvas.create_image(10, 10, anchor='nw', image=image_file)10,10anchor=nwimage

x0, y0, x1, y1= 50, 50, 80, 80
line = canvas.create_line(x0, y0, x1, y1)

このコードの主な目的は直線を描くことです。()次のパラメータは線分の 2 点の座標です。この 2 点によって直線が決定されます。ここで与えられているのは、座標 (50,50) から (80,80) まで直線を引くことです。

oval = canvas.create_oval(x0, y0, x1, y1, fill='red')  #创建一个圆,填充色为`red`红色
arc = canvas.create_arc(x0+30, y0+30, x1+30, y1+30, start=0, extent=180)  #创建一个扇形
rect = canvas.create_rectangle(100, 30, 100+20, 30+20)   #创建一个矩形

扇形を作成するときに2 つの新しいパラメータstart=0が追加されていextent=180ます。実際には、扇の側面が開いているのと同じように、0 度から 180 度まで変化します。私たちの見方では半円ですが、変更するとextent=901/4 円の
トリガー関数が表示されます。

def moveit():
    canvas.move(rect, 0, 2)

ここでのトリガーは、前の print_selection ではなくなりました (笑) では、これはどのような関数ですか? まず、単語の理解という観点から見ると、これは動きの関数です。それはビデオでも実証されています。 、長方形をクリックするたびにbutton、ここで移動するcanvas.move(rect, 0, 2)パラメータはこの変数、つまり、表示されている長方形の後ろの 0 と 2 を移動することです。つまり、横座標は 0 単位、縦座標は 2 単位移動します(rect,0,2)rect簡単に言うと、クリックするたびに横方向に移動するのではなく、縦方向に2単位ずつ移動します。
コード

import tkinter as tk

window = tk.Tk()
window.title('my window')
window.geometry('200x200')

canvas = tk.Canvas(window, bg='blue', height=100, width=200)
image_file = tk.PhotoImage(file='ins.gif')
image = canvas.create_image(10, 10, anchor='nw', image=image_file)
x0, y0, x1, y1= 50, 50, 80, 80
line = canvas.create_line(x0, y0, x1, y1)
oval = canvas.create_oval(x0, y0, x1, y1, fill='red')
arc = canvas.create_arc(x0+30, y0+30, x1+30, y1+30, start=0, extent=180)
rect = canvas.create_rectangle(100, 30, 100+20, 30+20)
canvas.pack()

def moveit():
    canvas.move(rect, 0, 2)

b = tk.Button(window, text='move', command=moveit).pack()


window.mainloop()

おすすめ

転載: blog.csdn.net/m0_51366201/article/details/131790820