可能是因为tKinter的版本原因,插入图片时,只能插入gif版本。
窗口界面:
点击按钮:
import tkinter as tk
window=tk.Tk()
window.title('my window')
window.geometry('200x100')
canvas=tk.Canvas(window,
width=200,
height=100,
bg='blue')
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,120,50)
canvas.pack()
def moveit():
canvas.move(rect,0,2)
b=tk.Button(window,
width=20,
height=2,
command=moveit
).pack()
window.mainloop()
image_file = tk.PhotoImage(file='ins.gif')
这一句是创造一个变量存放ins.gif
这张图片。-
image = canvas.create_image(10, 10, anchor='nw', image=image_file)
里面的参数10,10
就是图片放入画布的坐标 anchor=nw
则是把图片的左上角作为锚定点,在加上刚刚给的坐标位置,即可将图片位置确定。 最后一个参数的意思大家应该都知道,就是将刚刚存入的图片变量,赋值给image
。- create_line():主要实现的是画一条直线,后面
()
中给的参数就是线段两点的坐标,两点确定一条直线。此处给的就是从坐标(50,50)到(80,80)画一条直线。 - create_arc():创建扇形时多了两个没见过的参数
start=0
和extent=180
,其实就是从0度到180度,就好像扇子的边打开一样。在我们看来就是个半圆, 如果改为extent=90
,我们看到的就是一个1/4圆 - moveit()方法:每点一次
button
矩形就会移动这里canvas.move(rect, 0, 2)
的参数(rect,0,2)
就是移动rect
这个变量,即我们看到的矩形 后面的0和2,也就是横坐标移动0个单位,纵坐标移动2个单位,简单的说就是每次点击,横向不动,纵向移动两个单位。