为了账号安全,请及时绑定邮箱和手机立即绑定

分组 Canvas 的画图函数

标签:
Python

在 tkinter 中的 Canvas 有十分强大的作图功能,然而,并没有一份比较好的文档对这些作图函数进行分组,极大地限制了函数的使用。本文将这些作图函数分为如下几组:

graph = {'create_arc', 'create_line', 'create_oval', 'create_rectangle', 'create_polygon'}
image = {'create_bitmap', 'create_image'}
text = {'create_text'}
window = {'create_window'}

下面逐一介绍这些函数之间的参数的区别与联系。

1 通用参数

1.1 通用:graph + image + text + window

graph + image + text + window 共同的参数有:

选项 含义
state 指定该画布对象的状态。可以是 'normal'(默认值), 'disabled'(不可用,不响应事件)和 'hidden'(隐藏)
tags 为创建的画布对象添加标签

1.2 “width”:graph + text + window

graph、text 与 window 的共有参数是 "width",但是它们的含义有所区别:

选项 含义
graph 指定边框的宽度
text 如果指定该选项,则文本会在该宽度处自动断行;如果不指定该选项,文本对象的宽度等于文本最长行的长度
window 指定窗口组件的宽度

1.3 graph + text

graph 与 text 均有参数:activefill, activestipple, disabledfill, disabledstippleoffset, stipple

  1. activefill, activestipple 分别表示当画布对象状态为 'active' 的时候,填充颜色、指定填充的位图
  2. disabledfill, disabledstipple 分别表示当画布对象状态为 'disabled' 的时候,填充颜色、指定填充的位图
选项 含义
offset 指定当点画模式时填充位图的偏移。该选项的值可以是:"x,y", "#x,y", 'n', 'ne', 'e', 'se', 's', 'sw', 'w', 'nw', 'center'
stipple 指定一个位图用于填充。默认值是空字符串,表示实心

一个实例:

from tkinter import Tk, Canvas
# 创建窗口
root = Tk()
# 创建并添加Canvas
cv = Canvas(root, background='white')
cv.pack(fill='both', expand='yes')
cv.create_rectangle(30, 30, 200, 200,
outline='red', # 边框颜色
stipple = 'question', # 填充的位图
fill="red", # 填充颜色
width=5 # 边框宽度
)
cv.create_oval(240, 30, 330, 200,
outline='yellow', # 边框颜色
fill='pink', # 填充颜色
width=4 # 边框宽度
)
root.mainloop()

效果图如下:

1.4 image + text + window

选项 含义
anchor 指定位图在 position 参数的相对位置。'n', 'ne', 'e', 'se', 's', 'sw', 'w', 'nw''center'(默认值)来定位(ewsn 代表东西南北,其中上北下南左西右东)

1.5 graph 通用

  1. activedash, activewidthactiveoutline, activeoutlinestipple 分别表示当画布对象状态为 'active' 的时候,绘制虚线、指定边框的宽度、绘制轮廓线、指定填充轮廓的位图。
  2. disableddash, disabledwidthdisabledoutline, disabledoutlinestipple 分别表示当画布对象状态为 'disabled' 的时候,绘制虚线、指定边框的宽度、绘制轮廓线、指定填充轮廓的位图。
选项 含义
dash 指定绘制虚线轮廓。该选项值是一个整数元组,元组中的元素分别代表短线的长度和间隔。例如 (3, 5) 代表 3 个像素的短线和 5 个像素的间隔
dashoffset 指定虚线轮廓开始的偏移位置。例如当 dash=(5, 1, 2, 1)dashoffset=3,则从 2 开始画虚线
fill 指定填充的颜色,空字符串表示透明

1.6 graph - {'create_line'}

选项 含义
outline 指定轮廓的颜色

1.7 {'create_polygon', create_line''}

调用:create_polygon(coords,**kw)create_line(coords, **kw)

选项 含义
joinstyle 指定当绘制两个相邻线段之间接口的样式 。该选项的值可以是: -‘round’(以连接点为圆心,width/2 选项设置的长度为半径绘制圆角,默认值),‘bevel’(在连接点处对两线段的夹角平切), ‘miter’(沿着两线段的夹角延伸至一个点)。
smooth 该选项的值为 True 时,将绘制贝塞尔样条曲线代替线段。.默认值为 False
splinesteps 当绘制贝塞尔样条曲线的时候,该选项指定由多少条折线来构成曲线。默认值是 12;只有当 smooth 选项为 True 时该选项才能生效

2 create_window(position, **kw)

在 position 指定的位置 (x,y)(x,y)(x,y) 创建一个窗口组件。创建成功后返回该窗口组件的 ID。

下方表格列举了 kw 选项的具体含义:

选项 含义
height 指定窗口组件的高度
window 指定一个窗口组件

3 create_image(position, **kw)

position 指定的位置 (x,y)(x,y)(x,y) 创建一个图片对象。创建成功后返回该图片对象的 ID。下方表格列举了各个 kw 选项的具体含义:

选项 含义
activeimage 指定当图片对象状态为 'active' 时候显示的图片
disabledimage 指定当图片对象状态为 'disabled' 时候显示的图片
image 指定要显示的图片

4 create_bitmap(position, **kw)

position 指定的位置 (x,y)(x,y)(x,y) 创建一个位图对象。创建成功后返回该位图对象的 ID。

activebackground, activebitmap, activeforeground 分别指定当位图对象状态为 'active' 时候的背景颜色、填充的位图、前景颜色;disabledbackground, disabledbitmap, disabledforeground 分别指定当位图对象状态为 'disabled' 时候的背景颜色、填充的位图、前景颜色。

下方表格列举了各个 kw 其他选项的具体含义:

选项 含义
background 指定背景颜色,即在位图中值为 0 的点的颜色;空字符串表示透明
foreground 指定前景颜色,即在位图中值为 1 的点的颜色
bitmap 指定显示的位图

5 create_text(position,**kw)

position 指定的位置 (x,y)(x,y)(x,y) 创建一个文本对象。创建成功后返回该文本对象的 ID。

下方表格列举了各个 kw 选项的具体含义:

anchorcreate_bitmap(position, **kw)

选项 含义
fill 指定文本的颜色
font 指定文本的字体、尺寸等信息
justify 指定对于多行文本的对齐方式。该选项可以使用的值有:LEFT(默认)、CENTER 和 RIGHT
text 指定该文本对象将要显示的文本内容

6 形态各异 graph

6.1 create_rectangle(bbox,**kw)create_oval(bbox,**kw)傻傻分不清

create_oval(bbox,**kw)create_rectangle(bbox,**kw) 分别用于创建矩形和椭圆。新创建的画布对象位于显示列表的顶端,创建成功后返回该画布对象的 ID。

6.2 create_arc(bbox, **kw)

根据 bbox 即 (x0,y0,x1,y1)(x_0,y_0, x_1, y_1)(x0,y0,x1,y1) 创建一个扇形(‘pieslice’)、弓形(‘chord’)或弧形(‘arc’)。新创建的画布对象位于显示列表的顶端,创建成功后返回该画布对象的 ID。下方表格列举了各个 kw 选项的具体含义:

选项 含义
extent 指定从 start 选项指定的位置开始到结束位置的角度(默认值是 90.0 )
outlineoffset 指定当点画模式绘制轮廓时位图的偏移。该选项的值可以是:"x,y", "#x,y", 'n', 'ne', 'e', 'se', 's', 'sw', 'w', 'nw', 'center'
outlinestipple outline 选项被设置时,该选项用于指定一个位图来填充边框。默认值是空字符串,表示黑色 start
style 指定该方法创建的是扇形(‘pieslice’)(默认值)、弓形(‘chord’)或弧形(‘arc’)。

6.3 create_line(coords, **kw)

根据 coords 给定的坐标创建一条或多条线段。如果给定的坐标多于两个点,则会首尾相连变成一条折线,创建成功后返回该画布对象的 ID。

下方表格列举了各个 kw 选项的具体含义:

选项 含义
arrow 默认线段是不带箭头的,你可以通过设置该选项添加箭头到线段中。'first' 表示添加箭头到线段开始的位置;'last' 表示添加箭头到线段结束的位置;'both' 表示两端均添加箭头
arrowshape 用一个三元组 (a,b,c)(a,b,c)(a,b,c) 来指定箭头的形状。a,b,ca,b,ca,b,c 分别代表箭头的三条边的长;默认值是 (8, 10, 3)
capstyle 指定线段两端的样式。该选项的值可以是:‘buff’( 默认值)(线段的两段平切于起点和终点)、‘projecting’(线段的两段在起点和终点的位置分别延长一半 width 选项设置的长度)与 ‘round’(线段的两段在起点和终点的位置分别延长一半 width 选项设置的长度并以圆角绘制)
点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消