Python中Tkinter模块的Canvas控件使用学习(1:基本用法)

  Tkinter中用于绘图的控件是Canvas控件,该控件类似于之前学过的HTML5中的Canvas,后者是采用JavaScript语句绘图,而Tkinter中则直接用Python语句绘图。Tkinter中的Canvas控件和HTML5中的Canvas支持的绘图类型都差不多,包括绘制直线、圆形、弧形、矩形、字符串、图片等,但是两者的创建方式、绘图函数使用方式、绘图参数设置方式都不太一样。本文基于参考文献,学习Tkinter模块的Canvas控件的创建方式和基本图形的绘制方法。
  调用tkinter.Canvas创建Canvas控件( tkinter.Canvas ( master, option=value, … )),同时指定其属性,Canvas的全部属性说明详见参考文献1-2,本文仅列出最常用的几个属性。

属性名说明
background(bg)设置canvas背景色
width设置canvas控件宽度
height设置canvas控件高度
state设置canvas控件状态,可取值为normal 或disabled,默认为normal
relief设置canvas边框样式,可取值为FLAT、SUNKEN、RAISED、GROOVE、RIDGE,默认为 FLAT
borderwidth(bd)设置canvas控件的边框宽度

  创建包含空白Canvas控件的窗口,演示Canvas的创建方式,代码及运行效果如下:

# coding=gbk

import tkinter as tk

window=tk.Tk()
window.title('Canvas测试')
window.geometry('400x300')

tk.Label(window,text='Canvas示例').grid(row=0,column=0)
cv=tk.Canvas(window,bg="lightblue",width =200, height = 200)
cv.grid(row=1,column=1)

window.mainloop()

在这里插入图片描述

  下表列出Canvas中的常用基本绘图函数(来自参考文献1),详细的函数及函数参数说明请见参考文献1-4:

函数名说明函数形式
create_line绘制一条或者多条线段create_line(x0, y0, x1, y1, … , xn, yn, options)
create_oval绘制圆形或椭圆形create_oval(x0, y0, x1, y1, options)
create_polygon绘制多边形create_polygon(x0, y0, x1, y1, … , xn, yn, options)
create_rectangle绘制矩形create_rectangle(x0, y0, x1, y1, options)
create_text绘制文本create_text(x0, y0, text, options)
create_arc绘制弧形create_arc(coord, start, extent, fill)

  结合参考文献,对上述函数的基本用法进行验证,验证程序及运行效果如下所示:

# coding=gbk

import tkinter as tk

window=tk.Tk()
window.title('Canvas测试')
window.geometry('400x300')

tk.Label(window,text='Canvas示例').grid(row=0,column=0)
cv=tk.Canvas(window,bg="lightblue",width =300, height = 250)
cv.grid(row=1,column=1)

cv.create_text(20,20,text ='绘制线条示例:',font =('宋体',8,'bold'),anchor = tk.W)
cv.create_line(100,20,140,20)
cv.create_line(160,20,180,30,200,20)
cv.create_polygon(220,15,250,20,270,30,290,15,fill="",outline="blue")

cv.create_text(20,70,text ='绘制圆形示例:',font =('宋体',8,'bold'),anchor = tk.W)
cv.create_oval(120,50,160,90,fill ='',outline = 'red',width=2)
cv.create_oval(200,50,250,80,fill ='',outline = 'red',width=2)

cv.create_text(20,140,text ='绘制矩形示例:',font =('宋体',8,'bold'),anchor = tk.W)
cv.create_rectangle(120,120,160,160,fill ='',outline = 'red',width=2)
cv.create_rectangle(200,120,250,150,fill ='',outline = 'red',width=2)

cv.create_text(20,210,text ='绘制弧形示例:',font =('宋体',8,'bold'),anchor = tk.W)
cv.create_arc(120,190,160,230,start = 0, extent = 270, fill = '',outline ='orange',width = 2)
cv.create_arc(200,190,250,220,start = 120, extent = 210, fill = '',outline ='orange',width = 2)

window.mainloop()

在这里插入图片描述

  Canvas控件的用法和参数设置都比较复杂,本文仅是对着参考文献学习了Canvas最基本的用法,后续还会继续深入学习Canvas控件的使用方法。

参考文献:
[1]http://c.biancheng.net/tkinter/canvas-widget.html
[2]https://www.runoob.com/python/python-tk-canvas.html
[3]https://www.dandelioncloud.cn/article/details/1510269350337654786
[4]https://docs.python.org/3.10/library/tkinter.html
[5]https://blog.csdn.net/weixin_43302112/article/details/121503346

  • 1
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值