python tkinter canvas的方法itemcget、itemconfig和type的使用

python tkinter canvas有方法itemcget、itemconfig和type。现在介绍三个方法的使用。这里先介绍一下函数形参*args和**options的意义。很多函数有多个参数,很多参数有默认值。用户在调用函数时可能只给部分参数赋值,其他参数可能采用默认值。在说明函数用法时预先并不知道, 函数使用者会传递多少个参数给函数, 所以在此情况下就需要使用这两个关键字。*args和**options说明参数数目不定,但格式不同。*args表示任何多个无名参数,它本质是一个tuple(元组),**options表示关键字参数,它本质上是一个dict,即字典,但要求所有key(键)数据类型不变,值数据类型可变。
1.itemcget(item, option)
参数item可以是Canvas上某对象(例如:text对象)的ID,也可以是其Tag值,参数option是Canvas上由参数item指定的某对象的某个属性名称,该方法返回Canvas上由参数item指定的某对象某属性值,例如:

root = tk.Tk()
cv = tk.Canvas(root, height=300, width=300)
cID=cv.create_oval(40, 20, 100,80,fill = "pink",tags=('R'))
current_color = cv.itemcget('R', 'fill')
current_color = cv.itemcget(cID, 'fill')

2.itemconfig(item, **options)
参数item意义同上。该方法修改Canvas上由参数item指定的某对象(例如:text对象)的一个或多个由参数**options指定的属性值,例如:

root = tk.Tk()
cv = tk.Canvas(root, height=300, width=300)
cID=cv.create_text(100,100,text='红色',fill="red",tags=('R'))
cv.itemconfig('R', fill='black',text='黑色')
cv.itemconfig(cID, fill='black')

3.type(item)
参数item意义同上。该方法返回Canvas上由参数item 指定的某对象(例如:text对象)的类型。返回值可以是:“arc”, “bitmap”, “image”, “line”, “oval”, “polygon”, “rectangle”, “text”, 或 “window”。例如:

root = tk.Tk()
cv = tk.Canvas(root, height=300, width=300)
cv.create_text(100,100,text='红色',fill="red",tags=('R'))
a=cv.type('R')		#为字符串'text'

下边是一个简单的例子,初始在窗体显示红色字符’红色’,单击字符,变为显示黑色字符’黑色’,再单击字符,重新变为显示红色字符’红色’,如此循环。右击字符显示字符串’是text’。代码如下:

import tkinter as tk
root = tk.Tk()
cv = tk.Canvas(root, height=300, width=300)
cv.pack()
def onRclick(event):
    cv.itemconfig('R',text='是'+cv.type('R'))     
def onclick(event):
    current_color = cv.itemcget('R', 'fill')
    if current_color == 'red':
        cv.itemconfig('R', fill='black',text='黑色')
    else:
        cv.itemconfig(tID, fill='red',text='红色')
tID=cv.create_text(100,100,text='红色',fill="red",tags=('R'),font=("Arial",40))
cv.tag_bind('R','<Button-1>', onclick)
cv.tag_bind(tID,'<Button-3>', onRclick)
root.mainloop()
  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值