Python GUI编程
Python提供了多个图形开发界面的库,几个常用Python GUI库如下:
- Tkinter:Tk接口是Python的标准Tk GUI工具包的接口
- wxPython:一款开源软件,是Python语言一套优秀的GUI图形库。
- Jython:Jython程序可以和Java无缝集成。
Tkinter编程
创建一个GUI程序
- 1、导入Tkinter模块
- 2、创建控件
- 3、指定这个控件的master,即这个控件属于哪一个
- 4、告诉GM(geometry manager)有一个空间产生了
#导入Tkinter模块
from tkinter import *
#创建窗口
root=Tk()
#创建并添加Canvas
cv=Canvas(root,background='white')
#对窗口中的容器进行布局
cv.pack(expand=YES,fill=BOTH)
#在Canvas中❀线段
#创建线段时参数(x0,y0,x1,y1) x0,y0是起点,x1,y1是终点
cv.create_line(20,30,200,30,fill='red',width=2)
#进入消息循环
mainloop()
结果:
关于mainloop()
1、mainloop()方法允许程序循环执行,并进入等待和处理事件。
窗口中的组件可以理解围殴一个连环画。
2、mainloop()方法的作用是监控每个组件,当组件发生变化或是触发时间时,会立即更新窗口。
Tkinter组件
Tkinter提供各种控件,如按钮、标签和文本框等。
控件 | 描述 |
---|---|
Button | 按钮控件;在程序中显示按钮。 |
Canvas | 画布控件;显示图形元素如线条或文本 |
Checkbutton | 多选框控件;用于在程序中提供多项选择框 |
Entry | 输入控件;用于显示简单的文本内容 |
Frame | 框架控件,用于在屏幕上显示一个矩形区域,多用来作为容器 |
Label | 标签控件;用于显示文本和位图 |
Listbox | 列表框控件;用于显示一个字符串列表给用户 |
Menu | 菜单控件;用于显示菜单栏、下拉菜单和弹出菜单 |
Message | 消息控件;用于显示多行文本,与标签类似 |
Radiobutton | 单选按钮控件;用于显示一个单选按钮的状态 |
Scale | 范围控件;用于显示一个数值刻度,表示输出的范围 |
Scrollbar | 滚动条控件;用来提供一个单独的对话框,与Frame类似 |
Text | 文本控件;用于显示多行文本 |
Toplevel | 容器控件;用来土工一个单独的对话框 ,与Frame类似 |
Spinbox | 微调框控件;与Entry类似,但是可以指定输入范围值 |
PanedWindow | 管理窗口布局控件;可以包含一个或者多个子控件 |
LabelFrame | 简单的容器控件;常用于复杂的窗口布局 |
messagebox | 用于显示应用程序的消息框 |
标准属性
标准属性就是所有控件的共同属性,如大小,字体和颜色等等。
属性 | 描述 |
---|---|
Dimension | 控件大小 |
Color | 控件颜色 |
Font | 控件字体 |
Anchor | 锚点 |
Relief | 控件样式 |
Bitmap | 位图 |
Cursor | 光标 |
几何管理
Tkinter控件有特定的集合状态管理方法,管理整个空间区域组织:
几何方法 | 描述 |
---|---|
pack() | 包装 ;通过调用这个方法把控件打包到父控件容器中 |
grid() | 网格;通过设置row和column属性,让控件自动对齐到网格 |
place() | 位置 |
pack()属性
属性 | 描述 |
---|---|
expand | expand=1或expand=”YES",表示放置在剩余空闲位置上的中央 expand=0或expand=“no”,表示默认不扩展 |
fill | fill=“x”,表示横向填充 fill=“y”,表示纵向填充 fill=“both”,表示横向纵向都填充 |
side | 当side="left"或side="right"时,fill=“x” 不起作用,只能填充y 当side="top"或side="bottom"时,fill="y"不起作用,只能填充x |
anchor | 组件的对齐方式,顶对齐’n’,底对齐‘ s ‘,左 ’w‘,右’e’ |
after | 将组件置于其他组件之后 |
before | 将组件置于其他组件之前 |
grid()属性
属性 | 描述 |
---|---|
column | 组件所在的列起始位置 |
columnspam | 组件的列宽 |
row | 组件所在的行起始位置 |
rowspam | 组件的行宽 |
place()属性
属性 | 描述 |
---|---|
anchor | 组件对齐方式 |
x | 组件左上角x坐标 |
y | 组件右上角的y坐标 |
relx | 组件相对于窗口的x坐标,应为0-1之间的小数 |
rely | 组件相对于窗口的y坐标,应为0-1之间的小数 |
width | 组件的宽度 |
height | 组件的高度 |
relwidth | 组件相对于窗口的高度,0-1 |
relheight | 组件相对于窗口的高度,0-1 |
Canvas画布
Canvas语法
格式:
cv=Canvas(master,option=value,...)
- master:画布的父容器
- options:可选项,即该画布的可设置属性。
Canvas组件的用法,程序只需要创建并添加Canvas组件,然后调用该组件的方法来绘制图形即可。
程序示例上面已有。
Canvas属性
属性 | 描述 |
---|---|
bd | 边框宽度,单位像素,默认为2像素 |
bg | 背景色 |
confine | 如果为true(默认),画布不能滚动到可滑动的区域外。 |
cursor | 光标的形状设定,如arrow,circle,cross,plus等 |
height | 高度 |
highlightcolor | 要高亮的颜色 |
width | 画布在X坐标轴上的大小。 |
Canvas提供绘制图形方法:
Canvas的坐标系统是绘画的基础,其中点(0,0)位于Canvas组件的左上角,X轴水平向右延申,Y轴垂直向下延申。
(1)line
— 创建线条
指定两个点的坐标
line=canvas.create_line(x0,y0,x1,y1,...,xn,yn,options)
选项optons | 含义 |
---|---|
width | 指定边框的宽度 |
state | 1. 指定该画布对象的状态 2. 可以是 “normal”,“disabled”(不可用,不响应事件)和 “hidden”(隐藏) 3. 默认值是 “normal” |
fill | 1. 指定填充的颜色 2. 空字符串表示透明 |
joinstyle | 1. 指定当绘制两个相邻线段之间接口的样式 2. 该选项的值可以是: – “round”(以连接点为圆心,1/2 width 选项设置的长度为半径绘制圆角) – “bevel”(在连接点处对两线段的夹角平切) – “miter”(沿着两线段的夹角延伸至一个点) 3. 默认值是 "round" 4. 如果还不理解请看下方 create_line() 函数 joinstyle 选项的图解你就秒懂了~ |
offset | 1. 指定当点画模式时填充位图的偏移 2. 该选项的值可以是:“x,y”, “#x,y”, “n”, “ne”, “e”, “se”, “s”, “sw”, “w”, “nw”, “center” |
smooth | 1. 该选项的值为 True 时,将绘制贝塞尔样条曲线代替线段 2. 默认值为 False |
splinesteps | 1. 当绘制贝塞尔样条曲线的时候,该选项指定由多少条折线来构成曲线 2. 默认值是 12 3. 只有当 smooth 选项为 True 时该选项才能生效 |
state | 1. 指定该画布对象的状态 2. 可以是 “normal”,“disabled”(不可用,不响应事件)和 “hidden”(隐藏) 3. 默认值是 “normal” |
stipple | 1. 指定一个位图用于填充 2. 默认值是空字符串,表示实心 |
tags | 为创建的画布对象添加标签 |
arrow | 1. 默认线段是不带箭头的 2. 你可以通过设置该选项添加箭头到线段中 3. “first” 表示添加箭头到线段开始的位置 4. “last” 表示添加箭头到线段结束的位置 5. “both” 表示两端均添加箭头 |
arrowshape | 1. 用一个三元组 (a, b, c) 来指定箭头的形状 2. a, b, c 分别代表箭头的三条边的长 3. 默认值是 (8, 10, 3) |
capstyle | 1. 指定线段两端的样式 2. 该选项的值可以是: – “butt”(线段的两段平切于起点和终点) – “projecting”(线段的两段在起点和终点的位置分别延长一半 width 选项设置的长度) – “round”(线段的两段在起点和终点的位置分别延长一半 width 选项设置的长度并以圆角绘制) 3. 默认值是 "butt" 4. 如果还不理解请看下方图解你就秒懂了~ |
dash | 1. 绘制虚线 2. 该选项值是一个整数元组,元组中的元素分别代表短线的长度和间隔 3. 例如 (3, 5) 代表 3 个像素的短线和 5 个像素的间隔 |
dashoffset | 1. 指定虚线开始的偏移位置 2. 例如当 dash=(5, 1, 2, 1),dashoffset=3,则从 2 开始画虚线 |
activedash | 当画布对象状态为 “active” 的时候,绘制虚线 |
activefill | 当画布对象状态为 “active” 的时候,填充颜色 |
activestipple | 当画布对象状态为 “active” 的时候,指定填充的位图 |
activewidth | 当画布对象状态为 “active” 的时候,指定边框的宽度 |
disableddash | 当画布对象状态为 “disabled” 的时候,绘制虚线 |
disabledfill | 当画布对象状态为 “disabled” 的时候,填充颜色 |
disabledstipple | 当画布对象状态为 “disabled” 的时候,指定填充的位图 |
disabledwidth | 当画布对象状态为 “disabled” 的时候,指定边框的宽度 |
(2)rectangle
— 绘制矩形
指定矩形左上角和右下角点的坐标
rectangle = create_rectangle(x0,y0,x1,y1,options)
选项options | 含义 |
---|---|
fill | 1. 指定填充的颜色 2. 空字符串表示透明 |
width | 指定边框的宽度 |
outline | 指定轮廓的颜色 |
state | 1. 指定该画布对象的状态 2. 可以是 “normal”,“disabled”(不可用,不响应事件)和 “hidden”(隐藏) 3. 默认值是 “normal” |
style | 1. 指定该方法创建的是扇形(“pieslice”)、弓形(“chord”)还是弧形(“arc”) 2. 默认创建的是扇形 |
tags | 为创建的画布对象添加标签 |
stipple | 1. 指定一个位图用于填充 2. 默认值是空字符串,表示实心 |
dash | 1. 指定绘制虚线轮廓 2. 该选项值是一个整数元组,元组中的元素分别代表短线的长度和间隔 3. 例如 (3, 5) 代表 3 个像素的短线和 5 个像素的间隔 |
dashoffset | 1. 指定虚线轮廓开始的偏移位置 2. 例如当 dash=(5, 1, 2, 1),dashoffset=3,则从 2 开始画虚线 |
offset | 1. 指定当点画模式时填充位图的偏移 2. 该选项的值可以是:“x,y”, “#x,y”, “n”, “ne”, “e”, “se”, “s”, “sw”, “w”, “nw”, “center” |
outlineoffset | 1. 指定当点画模式绘制轮廓时位图的偏移 2. 该选项的值可以是:“x,y”, “#x,y”, “n”, “ne”, “e”, “se”, “s”, “sw”, “w”, “nw”, “center” |
outlinestipple | 1. 当 outline 选项被设置时,该选项用于指定一个位图来填充边框 2. 默认值是空字符串,表示黑色 |
activedash | 当画布对象状态为 “active” 的时候,绘制虚线 |
activefill | 当画布对象状态为 “active” 的时候,填充颜色 |
activeoutline | 当画布对象状态为 “active” 的时候,绘制轮廓线 |
activeoutlinestipple | 当画布对象状态为 “active” 的时候,指定填充轮廓的位图 |
activestipple | 当画布对象状态为 “active” 的时候,指定填充的位图 |
activewidth | 当画布对象状态为 “active” 的时候,指定边框的宽度 |
disableddash | 当画布对象状态为 “disabled” 的时候,绘制虚线 |
disabledfill | 当画布对象状态为 “disabled” 的时候,填充颜色 |
disabledoutline | 当画布对象状态为 “disabled” 的时候,绘制轮廓线 |
disabledoutlinestipple | 当画布对象状态为 “disabled” 的时候,指定填充轮廓的位图 |
disabledstipple | 当画布对象状态为 “disabled” 的时候,指定填充的位图 |
disabledwidth | 当画布对象状态为 “disabled” 的时候,指定边框的宽度 |
(3)oval
— 创建一个圆,椭圆
oval = canvas.create_oval(x0,y0,x1,y1,options)
椭圆、圆的绘制需要指定两个点的坐标,分别作为矩形左上角点和右下角点的坐标来确定一个矩形,而该方法负责绘制该矩形的内切椭圆。
(4)arc
— 绘制弧,扇形
arc = canvas.create_arc(x0,y0,x1,y1,options)
绘制弧和绘制椭圆的用法相似,因为弧是椭圆的一部分,因此同样也是指定左上角和右下角两个点的坐标,默认总是绘制从3点(0)开始,逆时针旋转90°的那一段弧。可以同时start改变起始角度,也可通过extent改变转过的角度。
选项options | 含义 |
---|---|
fill | 1. 指定填充的颜色 2. 空字符串表示透明 |
width | 指定边框的宽度 |
outline | 指定轮廓的颜色 |
state | 1. 指定该画布对象的状态 2. 可以是 “normal”,“disabled”(不可用,不响应事件)和 “hidden”(隐藏) 3. 默认值是 “normal” |
style | 1. 指定该方法创建的是扇形(“pieslice”)、弓形(“chord”)还是弧形(“arc”) 2. 默认创建的是扇形 |
tags | 为创建的画布对象添加标签 |
stipple | 1. 指定一个位图用于填充 2. 默认值是空字符串,表示实心 |
dash | 1. 指定绘制虚线轮廓 2. 该选项值是一个整数元组,元组中的元素分别代表短线的长度和间隔 3. 例如 (3, 5) 代表 3 个像素的短线和 5 个像素的间隔 |
dashoffset | 1. 指定虚线轮廓开始的偏移位置 2. 例如当 dash=(5, 1, 2, 1),dashoffset=3,则从 2 开始画虚线 |
offset | 1. 指定当点画模式时填充位图的偏移 2. 该选项的值可以是:“x,y”, “#x,y”, “n”, “ne”, “e”, “se”, “s”, “sw”, “w”, “nw”, “center” |
outlineoffset | 1. 指定当点画模式绘制轮廓时位图的偏移 2. 该选项的值可以是:“x,y”, “#x,y”, “n”, “ne”, “e”, “se”, “s”, “sw”, “w”, “nw”, “center” |
outlinestipple | 1. 当 outline 选项被设置时,该选项用于指定一个位图来填充边框 2. 默认值是空字符串,表示黑色 |
activedash | 当画布对象状态为 “active” 的时候,绘制虚线 |
activefill | 当画布对象状态为 “active” 的时候,填充颜色 |
activeoutline | 当画布对象状态为 “active” 的时候,绘制轮廓线 |
activeoutlinestipple | 当画布对象状态为 “active” 的时候,指定填充轮廓的位图 |
activestipple | 当画布对象状态为 “active” 的时候,指定填充的位图 |
activewidth | 当画布对象状态为 “active” 的时候,指定边框的宽度 |
disableddash | 当画布对象状态为 “disabled” 的时候,绘制虚线 |
disabledfill | 当画布对象状态为 “disabled” 的时候,填充颜色 |
disabledoutline | 当画布对象状态为 “disabled” 的时候,绘制轮廓线 |
disabledoutlinestipple | 当画布对象状态为 “disabled” 的时候,指定填充轮廓的位图 |
disabledstipple | 当画布对象状态为 “disabled” 的时候,指定填充的位图 |
disabledwidth | 当画布对象状态为 “disabled” 的时候,指定边框的宽度 |
(5)polygon
— 绘制多边形
polygon = canvas.create_polygon(x1,y1,x2,y2,x3,y3...,options)
x1,y1,x2,y2,x3,y3,…分别为多边形顶点的坐标
选项options | 含义 |
---|---|
fill | 1. 指定填充的颜色 2. 空字符串表示透明 |
width | 指定边框的宽度 |
outline | 指定轮廓的颜色 |
state | 1. 指定该画布对象的状态 2. 可以是 “normal”,“disabled”(不可用,不响应事件)和 “hidden”(隐藏) 3. 默认值是 “normal” |
style | 1. 指定该方法创建的是扇形(“pieslice”)、弓形(“chord”)还是弧形(“arc”) 2. 默认创建的是扇形 |
tags | 为创建的画布对象添加标签 |
stipple | 1. 指定一个位图用于填充 2. 默认值是空字符串,表示实心 |
dash | 1. 指定绘制虚线轮廓 2. 该选项值是一个整数元组,元组中的元素分别代表短线的长度和间隔 3. 例如 (3, 5) 代表 3 个像素的短线和 5 个像素的间隔 |
joinstyle | 1. 指定当绘制两个相邻线段之间接口的样式 2. 该选项的值可以是: – “round”(以连接点为圆心,1/2 width 选项设置的长度为半径绘制圆角) – “bevel”(在连接点处对两线段的夹角平切) – “miter”(沿着两线段的夹角延伸至一个点) 3. 默认值是 “round” |
smooth | 1. 该选项的值为 True 时,将绘制贝塞尔样条曲线代替线段 2. 默认值为 False |
splinesteps | 1. 当绘制贝塞尔样条曲线的时候,该选项指定由多少条折线来构成曲线 2. 默认值是 12 3. 只有当 smooth 选项为 True 时该选项才能生效 |
dashoffset | 1. 指定虚线轮廓开始的偏移位置 2. 例如当 dash=(5, 1, 2, 1),dashoffset=3,则从 2 开始画虚线 |
offset | 1. 指定当点画模式时填充位图的偏移 2. 该选项的值可以是:“x,y”, “#x,y”, “n”, “ne”, “e”, “se”, “s”, “sw”, “w”, “nw”, “center” |
outlineoffset | 1. 指定当点画模式绘制轮廓时位图的偏移 2. 该选项的值可以是:“x,y”, “#x,y”, “n”, “ne”, “e”, “se”, “s”, “sw”, “w”, “nw”, “center” |
outlinestipple | 1. 当 outline 选项被设置时,该选项用于指定一个位图来填充边框 2. 默认值是空字符串,表示黑色 |
activedash | 当画布对象状态为 “active” 的时候,绘制虚线 |
activefill | 当画布对象状态为 “active” 的时候,填充颜色 |
activeoutline | 当画布对象状态为 “active” 的时候,绘制轮廓线 |
activeoutlinestipple | 当画布对象状态为 “active” 的时候,指定填充轮廓的位图 |
activestipple | 当画布对象状态为 “active” 的时候,指定填充的位图 |
activewidth | 当画布对象状态为 “active” 的时候,指定边框的宽度 |
disableddash | 当画布对象状态为 “disabled” 的时候,绘制虚线 |
disabledfill | 当画布对象状态为 “disabled” 的时候,填充颜色 |
disabledoutline | 当画布对象状态为 “disabled” 的时候,绘制轮廓线 |
disabledoutlinestipple | 当画布对象状态为 “disabled” 的时候,指定填充轮廓的位图 |
disabledstipple | 当画布对象状态为 “disabled” 的时候,指定填充的位图 |
disabledwidth | 当画布对象状态为 “disabled” 的时候,指定边框的宽度 |
(6)bitmap
— 绘制位图
d={1:'error',2:'info',3:'question',4:'hourglass'}
for i in d:
canvas.create_bitmap((40*i,80),bitmap=d[i])
第一个参数为一个点(x,y)指定位图存放位置的左上位置
选项options | 含义 |
---|---|
background | 1. 指定背景颜色 2. 即在位图中值为 0 的点的颜色 3. 空字符串表示透明 |
bitmap | 指定显示的位图 |
anchor | 1. 指定位图在 position 参数的相对位置 2. “n”, “ne”, “e”, “se”, “s”, “sw”, “w”, “nw”, 或 “center” 来定位(ewsn代表东西南北,上北下南左西右东) 3. 默认值是 “center” |
state | 1. 指定该画布对象的状态 2. 可以是 “normal”, “disabled” (不可用,不响应事件)和 “hidden”(隐藏) 3. 默认值是 “normal” |
foreground | 1. 指定前景颜色 2. 即在位图中值为 1 的点的颜色 |
tags | 为创建的位图对象添加标签 |
activebackground | 指定当位图对象状态为 “active” 时候的背景颜色 |
activebitmap | 指定当位图对象状态为 “active” 时候填充的位图 |
activeforeground | 指定当位图对象状态为 “active” 时候的前景颜色 |
disabledbackground | 指定当位图对象状态为 “disabled” 时候的背景颜色 |
disabledbitmap | 指定当位图对象状态为 “disabled” 时候填充的位图 |
disabledforeground | 指定当位图对象状态为 “disabled” 时候的前景颜色 |
(7)GIF
— 绘制GIF图像
img = PhotoImage(file='d:/1.pgn')
cv.create_image((150,150),image=img)
#先使用PhotoImage创建GIF图像,再将image属性来设置为新创建的img
选项options | 含义 |
---|---|
anchor | 1. 指定位图在 position 参数的相对位置 2. “n”, “ne”, “e”, “se”, “s”, “sw”, “w”, “nw”, 或 “center” 来定位(ewsn代表东西南北,上北下南左西右东) 3. 默认值是 “center” |
image | 指定要显示的图片 |
state | 1. 指定该图片对象的状态 2. 可以是 “normal”, “disabled” (不可用,不响应事件)和 “hidden”(隐藏) 3. 默认值是 “normal” |
tags | 为创建的图片对象添加标签 |
activeimage | 指定当图片对象状态为 “active” 时候显示的图片 |
disabledimage | 指定当图片对象状态为 “disabled” 时候显示的图片 |
(8) text
— 绘制文字
text=canvas.create_text((x0,y0),text='Hello Text')
选项options | 含义 |
---|---|
fill | 指定文本的颜色 |
font | 指定文本的字体、尺寸等信息 |
justify | 1. 指定对于多行文本的对齐方式 2. 该选项可以使用的值有:“left”(默认)、“center” 和 “right” |
offset | 1. 指定当点画模式时填充位图的偏移 2. 该选项的值可以是:“x,y”, “#x,y”, “n”, “ne”, “e”, “se”, “s”, “sw”, “w”, “nw”, “center” |
state | 1. 指定该画布对象的状态 2. 可以是 “normal”,“disabled”(不可用,不响应事件)和 “hidden”(隐藏) 3. 默认值是 “normal” |
stipple | 1. 指定一个位图用于填充 2. 默认值是空字符串,表示实心 |
tags | 为创建的位图对象添加标签 |
text | 指定该文本对象将要显示的文本内容 |
width | 1. 如果指定该选项,则文本会在该宽度处自动断行 2. 如果不指定该选项,文本对象的宽度等于文本最长行的长度 |
anchor | 1. 指定文本在 position 参数的相对位置 2. “n”, “ne”, “e”, “se”, “s”, “sw”, “w”, “nw”, 或 “center” 来定位(ewsn代表东西南北,上北下南左西右东) 3. 默认值是 “center” |
activefill | 指定当文本对象状态为 “active” 时候文本的颜色 |
activestipple | 指定当文本对象状态为 “active” 时候文本填充的位图 |
disabledfill | 指定当文本对象状态为 “disabled” 时候文本的颜色 |
disabledstipple | 指定当文本对象状态为 “disabled” 时候文本填充的位图 |
(9) window
— 绘制组件
cv.create_window((x0,y0),options)
选项options | 含义 |
---|---|
anchor | 1. 指定位图在 position 参数的相对位置 2. “n”, “ne”, “e”, “se”, “s”, “sw”, “w”, “nw”, 或 “center” 来定位(ewsn代表东西南北,上北下南左西右东) 3. 默认值是 “center” |
height | 指定窗口组件的高度 |
state | 1. 指定该图片的状态 2. 可以是 “normal”,“disabled”(不可用,不响应事件)和 “hidden”(隐藏) 3. 默认值是 “normal” |
tags | 为创建的图片对象添加标签 |
width | 指定窗口组件的宽度 |
window | 指定一个窗口组件 |
Canvas操作图形项的标签
通过Cnavas绘制图形后,这些图形别不是完全静态的图形,每个图形都是一个独立的对象,程序完全可以动态地修改、删除这些图形。
Canvas以”堆叠“的形式来管理这些图形,先绘制的图形位于”堆叠“的下面,后绘制的图形位于”堆叠“的上面。
为了对这些图形进行修改、删除,程序先要获得这些图形的引用。
获得图形引用有两种方式:
1、通过图形的ID,也就是Canvas执行create_xxx()方法的返回值。Canvas会依次返回1、2、3等整数作为图形的ID。
2、通过图形的tag(标签)
在Canvas中调用create_xxx()方法绘图时,可以传入一个tags选项,该选项可以为所绘制的图形添加一个或tag。
Canvas提供如下方法来添加tag:
addtag_above(self,newtag,tagOrId)
为tagOrId对应图形的上一个图形添加新tag
addtag_all(self,newtag)
为所有图形添加新tag
addtag_below(self,newtag,tagOrId)
为tagOrId对应图形的下一个图形添加新tag。
addtag_closest(self,newtag,x,y)
为和x,y点最接近的图形添加新tag
addtag_enclosed(self,newtag,x1,y1,x2,y2)
为指定矩形区域内最上面的图形添加新tag。其中x1,y1去顶矩形区域的左上角坐标;x2,y2确定矩形区域的右下角坐标。
addtag_overlapping(self, newtag, x1, y1, x2, y2)
:为与指定矩形区域重叠的最上面的图形项添加tag。
addtag_withtag(self, newtag, tagOrId)
:为 tagOrId 对应图形项添加新 tag。
Canvas 提供了如下方法来删除图形项的tag:
dtag(self, *args):
删除指定图形项的tag。
Canvas提供如下方法获取图形的所有tag:
gettags(self, *args)
:获取指定图形项的所有tag。
Canvas 提供了如下方法根据 tag 来获取其对应的所有图形项:
find_withtag(self, tagOrId)
:获取tagOrId 对应的所有图形项。