python学习-->tkinter模块学习之Canvas(画布)

大家好!

最近在备考,时间耽搁了一下,更新有点慢!

 今天我想分享的是在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()函数!!!

然后就完成了!!!

好了,今天的分享就这么多了,有什么不清楚或者我写错的地方,请多多指教!

私信,评论我呗!!!!!!

分享一张萌图!

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Python TkinterCanvas画布)是一个可以用来绘制图形的小部件。它允许你在窗口上创建各种形状的图形,包括线条、矩形、圆形、椭圆、多边形等。你可以在画布上设置颜色、大小、位置等属性,并通过代码来操纵这些属性。 创建一个画布的基本步骤如下: 1. 导入Tkinter模块 2. 创建主窗口 3. 创建Canvas对象并指定宽度和高度 4. 使用各种形状的绘图方法来创建图形 5. 使用pack()或grid()方法将Canvas添加到主窗口中 例如,下面的代码创建一个大小为400x400像素的画布,并在其中绘制一个矩形和一个椭圆: ``` python from tkinter import * root = Tk() canvas = Canvas(root, width=400, height=400) canvas.pack() # 绘制矩形 canvas.create_rectangle(50, 50, 150, 150, fill="blue") # 绘制椭圆 canvas.create_oval(200, 200, 300, 300, fill="red") root.mainloop() ``` 这里使用了Canvas对象的`create_rectangle()`和`create_oval()`方法来创建矩形和椭圆,分别指定它们的左上角和右下角坐标,并设置了填充颜色。这些形状将被添加到画布中,并通过`pack()`方法将画布添加到主窗口中。 Canvas还有许多其他的方法和属性可以用来控制画布中的图形,可以根据需要进行学习和使用。 ### 回答2: Python Tkinter是一个用于图形用户界面(GUI)编程的Python工具包。Tkinter包括许多控件,例如按钮、标签和画布画布Tkinter中最灵活的控件之一,它是一个以像素为单位的矩形区域,可以在上面绘制图像、文本和形状。_canvas_ 组件是 Tkinter画布组件,它被用来实现2D图形。 使用_canvas_组件,我们可以轻松创建自定义图形应用程序。canvas提供了许多方法来绘制不同类型的图像,例如线、矩形、椭圆、弧、多边形等。在 Tkinter 中,_canvas_ 是一个单独的组件,常与其他 Tkinter 组件一起使用,例如按钮、列表框和文本框。 在Python中,使用Tkinter Canvas控件绘制图形可以分为以下三个步骤: 1. 创建_canvas_:在 Tkinter 窗口中创建_canvas_对象。 2. 绘制图形:使用_canvas_提供的各种方法在_canvas_中绘制具体图形。 3. 添加_canvas_到窗口:使用_grid()或_pack()等 Tkinter 布局方法将_canvas_添加到应用程序窗口中。 下面是一些_canvas_控件的示例代码: ``` python from tkinter import * root= Tk() canvas = Canvas(root, width = 300, height = 300) canvas.pack() canvas.create_rectangle(10, 10, 200, 200, fill="red") canvas.create_line(0, 0, 300, 300, fill="blue") root.mainloop() ``` 此代码创建一个大小为300*300像素的_canvas_,并在其上绘制了红色矩形和蓝色直线。 总之,画布Tkinter 极为有用的组件之一,它可以用于绘制各种图形并轻松地创建自定义图像应用。花费一些时间学习_canvas_ 的各种方法和特性,以使您的 Python 图形编程技能更加丰富和多样化。 ### 回答3: Python tkinter框架是Python语言中常用的GUI工具包,其中的canvas画布模块提供了强大的绘图能力,可以用于创建各种复杂的图形界面。 canvas画布模块提供了一个可供绘制的空间,可以使用它来绘制图形、显示文本和图片等。在canvas中,我们可以利用一些基本的绘图元素,如矩形、椭圆、折线、曲线等,以及对它们的填充和边框进行操作,创建出我们需要的各种图形。 canvas画布模块主要用到以下几种类: 1. Canvas类:它是我们在程序中创建画布的类,它提供了各种绘图方法和工具。 2. Item类:它是画布上的所有绘图元素的基类,包括矩形、椭圆、折线、曲线、文本等。 3. 绘制方法:包括create_line()、create_rectangle()、create_oval()、create_polygon()、create_text()等,可以根据需要选择合适的方法进行绘制。 在绘制图形时,canvas也提供了许多常用的属性设置,如颜色、线条粗细、填充等等。通过这些属性的设置,我们可以最终创建出自己想要的图形。 此外,canvas画布模块还支持一些常见的事件响应机制,例如鼠标事件、键盘事件、聚焦事件等,我们可以通过绑定这些事件的响应函数,实现与用户的交互。 总之,Python tkinter canvas画布是一个非常强大的绘图工具,它可以帮助我们实现各种复杂的界面和图形,如果你需要开发GUI应用程序,canvas模块是一个不错的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值