tkinter 库入门教程(七):Canvas画布

  • Post author:
  • Post category:其他


ins.gif的下载地址:

https://morvanzhou.github.io/static/results/tkinter/ins.gif

笔者用jupyter notebook运行下面这段代码时,发现了一个诡异之处,有时能成功运行,有时会报错:

TclError: image "pyimage13" doesn't exist

同一段代码,为什么有时能成功运行,有时会报错,笔者想不明白,如果哪位大佬发现了问题,请给笔者留言。

# 创建主窗口
import tkinter as tk
window = tk.Tk()
window.title('画布')
window.geometry('300x200')


# 创建画布
canvas = tk.Canvas(window, bg='blue', width='200', height=100)

# 往画布中插入图片
image_file = tk.PhotoImage(file='ins.gif')  # 引入图片AI.gif
image = canvas.create_image(10, 10,  # 10, 10是图片放入画布中的坐标
                           anchor='nw',  # nw是northwest的简写,把图片的左上角作为锚定点
                           image=image_file,
                          )

# 在画布中绘制直线
x0, y0, x1, y1 = 50, 50, 80, 80
line = canvas.create_line(x0, y0, x1, y1)  # 该线起点为(30, 30), 终点为(70, 70)

# 在画布中绘制一个圆, 填充颜色为绿色
oval = canvas.create_oval(x0, y0, x1, y1, fill='red')

# 在画布中创建一个扇形
arc = canvas.create_arc(# 圆心坐标((x0+30+x1+30)/2, (y0+30+y1+30)/2)
                        # 圆的直径为下面两点的距离
                        # 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()



版权声明:本文为qq_41149269原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。