前言

python中通常我们写程序,显示结果和操作都是在终端区,如果要想实现一个有显示界面的程序那该怎样实现呢?python中有好几个库都可以实现,这个系列我们一起来学习如何使用python自带的tkinter库来实现。

本节课将要学习Canvas窗口部件,Canvas是画布的意思,那什么时候该用Canvas部件呢?通常用于显示和编辑图形和其他绘图。这个小部件的另一个常见用途是实现各种自定义小部件。例如,您可以通过在画布上绘制直线、椭圆、多边形、矩形和显示图片。

绘制图形

代码:

from tkinter import *



root = Tk()

root.geometry("400x200")



w = Canvas(root, width=200, height=100,bg="yellow")

w.pack()

# 绘制直线 起点 和 终点

w.create_line(0, 0, 200, 100)

# dash绘制虚线,前面一个数字表示长度,后面表示间隔

w.create_line(0, 100, 200, 0, fill="red", dash=(5,5))

# 绘制矩形 左上角 右下角坐标 填充颜色

w.create_rectangle(50, 25, 150, 75, fill="blue")



mainloop()

效果:

【tkinter系列 第九课 Canvas窗口部件 】_显示图片

解释:

在画布中绘制内容,使用 create 方法添加新项。createline() 绘制线段 createrectangle() 绘制矩形

显示图片

代码:

from tkinter import *



root = Tk()

root.geometry("400x200")



w = Canvas(root, width=200, height=100,bg="yellow")

w.pack()

# 使用PhotoImage方法加载图片

photo = PhotoImage(file="test.png")



# 显示图片



前面两个数字表示图片显示位置 锚点默认图片中心 anchor参数可以更改锚点

w.create_image(100,50,image=photo)

# w.create_image(100,0,anchor="n",image=photo)

# w.create_image(0,0,anchor="nw",image=photo)

mainloop()

效果:

默认 anchor="center"。

【tkinter系列 第九课 Canvas窗口部件 】_python_02

anchor="n",设置定边中间为锚点。

【tkinter系列 第九课 Canvas窗口部件 】_显示图片_03

anchor="nw" ,设置左上角为锚点。

【tkinter系列 第九课 Canvas窗口部件 】_锚点_04

拓展:

除了Canvas可以显示图片,按钮和标签控件同样也是可以显示图片的。

代码:

from tkinter import *



root = Tk()

root.geometry("400x200")



# 使用PhotoImage方法加载图片

photo = PhotoImage(file="test.png")



l = Label(root, image=photo, width=200, bg="red")

l.pack()



button = Button(root,image=photo)

button.pack()



mainloop()

效果:

【tkinter系列 第九课 Canvas窗口部件 】_python_05

参考:

http://effbot.org/tkinterbook/canvas.html

(全文完)



长按二维码,

加关注!

叶子陪你玩

【tkinter系列 第九课 Canvas窗口部件 】_锚点_06