大家好!
最近在备考,时间耽搁了一下,更新有点慢!
今天我想分享的是在tkinter中的Canvas方法,就跟设置窗口背景差不多,并且分享一些插入图片在窗口里面!
下面先把我们的代码的执行效果给大伙看看先!!
这一张是还没有点击过move按钮的原始图片。蓝色部分是画布的颜色,如果我不插入图片的话,这样画布就是蓝色的。因为我没有设置好图片大小,所以露出了“马脚”,有一部分蓝色露出来!
这一张经过多次点击按钮之后矩形移动位置后的图片!!!
这一张是不插入图片后的画布样子就是这样的!!!
完整代码:
# 导入tkinter 模块
import tkinter as tk
from PIL import Image, ImageTk
# 创建一个窗口对象
window = tk.Tk()
# 设置一下窗口标题
window.title("My Window")
# 设置窗口的大小
window.geometry("720x550")
# 创建画布对象
canvas = tk.Canvas(window, bg="blue", height=440, width=430)
img = Image.open("./米奇老鼠.jpg") # 打开图片
photo = ImageTk.PhotoImage(img) # 使用ImageTk的PhotoImage方法
# 安置图片在画布上面
"""0,0其实代表着我们放置图片的具体;
位置anchor="nw"代表着原点位置;
image代表图片对象是谁"""
image = canvas.create_image(0, 0, anchor="nw", image=photo)
# 定义画的图形大小,由它的初始坐标和终点坐标决定大小
x1, y1, x2, y2 = 0, 0, 80, 80
# 线条,fill参数代表颜色
line = canvas.create_line(x1, y1, x2, y2, fill="red")
# 画圆
oval = canvas.create_oval(x1, y1, x2, y2, fill="yellow")
# 画半圆,start参数代表开始的角度,extent代表最后的角度,所有画出一个半圆
arc = canvas.create_arc(x1 + 30, y1 + 30, x2 + 30, y2 + 30, start=0, extent=180)
# 矩形
rect = canvas.create_rectangle(x1 + 10, y1 + 10, x2 + 10, y2 + 10)
canvas.pack()
# 定义移动函数
def moveit():
canvas.move(rect, 0, 3)
b = tk.Button(window, text="move", command=moveit).pack()
window.mainloop()
第一步肯定是创建窗口!可以看看这里窗口
第二步创建画布对象:
# 创建画布对象
canvas = tk.Canvas(window, bg="blue", height=440, width=430)
img = Image.open("./米奇老鼠.jpg") # 打开图片
photo = ImageTk.PhotoImage(img) # 使用ImageTk的PhotoImage方法
# 安置图片在画布上面
"""0,0其实代表着我们放置图片的具体
位置anchor="nw"代表着原点位置;
image代表图片对象是谁"""
image = canvas.create_image(0, 0, anchor="nw", image=photo)
第三步设置要画的一些图形:
# 定义画的图形大小,由它的初始坐标和终点坐标决定大小
x1, y1, x2, y2 = 0, 0, 80, 80
# 线条,fill参数代表颜色
line = canvas.create_line(x1, y1, x2, y2, fill="red")
# 画圆
oval = canvas.create_oval(x1, y1, x2, y2, fill="yellow")
# 画半圆,start参数代表开始的角度,extent代表最后的角度,所有画出一个半圆
arc = canvas.create_arc(x1 + 30, y1 + 30, x2 + 30, y2 + 30, start=0, extent=180)
# 矩形
rect = canvas.create_rectangle(x1 + 10, y1 + 10, x2 + 10, y2 + 10)
canvas.pack()
第四是我自己增加的移动小功能:
# 定义移动函数
def moveit():
canvas.move(rect, 0, 3)
b = tk.Button(window, text="move", command=moveit).pack()
最后记得调用window.mainloop()函数!!!
然后就完成了!!!
好了,今天的分享就这么多了,有什么不清楚或者我写错的地方,请多多指教!
私信,评论我呗!!!!!!
分享一张萌图!