python中通常我们写程序,显示结果和操作都是在终端区,如果要想实现一个有显示界面的程序那该怎样实现呢?python中有好几个库都可以实现,这个系列我们一起来学习如何使用python自带的tkinter库来实现。
本节课将要学习Canvas窗口部件,Canvas是画布的意思,那什么时候该用Canvas部件呢?通常用于显示和编辑图形和其他绘图。这个小部件的另一个常见用途是实现各种自定义小部件。例如,您可以通过在画布上绘制直线、椭圆、多边形、矩形和显示图片。
绘制图形
代码:
代码语言:javascript复制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()
效果:
解释:
在画布中绘制内容,使用 create 方法添加新项。createline() 绘制线段 createrectangle() 绘制矩形
显示图片
代码:
代码语言:javascript复制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"。
anchor="n",设置定边中间为锚点。
anchor="nw" ,设置左上角为锚点。
拓展:
除了Canvas可以显示图片,按钮和标签控件同样也是可以显示图片的。
代码:
代码语言:javascript复制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()
效果:
参考:
http://effbot.org/tkinterbook/canvas.html