Python tkinter -- 第18章 画布控件属性(2)

本文详细介绍了Python tkinter库中画布控件的多个方法,包括删除字符、删除对象、管理标签、查找对象等操作。这些方法如dchars、delete、dtag、find_above、find_all等,提供了对画布上对象的精细化管理和交互功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

*18.2.23 dchars(args)
*args传递的参数有3个:
(1)tagOrId:对象ID或者标签tag
(2)from:开始的字符位置
(3)to:可选项,结束的字符位置。
dchars的作用就是从tagOrId指定对象中,删除字符。删除从from指定的位置开始,到to指定的位置结束。如果to没有指定,则只删除一个字符。

import tkinter as tk
root=tk.Tk()
root.geometry('320x240')
b1=tk.Canvas(root)
t=b1.create_text(120,20)
b1.insert(t,tk.INSERT,'新年快乐')
def delete():
    b1.dchars(t,0)
b2=tk.Button(root,text='Delete',command=delete)
b2.pack()
b1.pack()
root.mainloop()

结果:
在这里插入图片描述
*18.2.24 delete(args)
*args传递的参数只有一个:
(1)tagOrId:表示对象ID或者tag(标签)
delete的作用是删除tagOrId指定的对象。对象可以是ID,也可以是标签tag。如果指定的对象不存在,也不会产生错误。

import tkinter as tk
root=tk.Tk()
root.geometry('320x240')
b1=tk.Canvas(root)
t=b1.create_text(120,20,text='新年快乐')
def delete():
    b1.delete(t)
b2=tk.Button(root,text='Delete',command=delete)
b2.pack()
b1.pack()
root.mainloop()

结果:
在这里插入图片描述
说明:点击’Delete’按钮之后,’新年快乐’对象会被删除。
*18.2.25 dtag(args)
*args可以有两个参数:
(1)tagOrId:对象ID或者标签tag。
(2)tagDelete:指定要删除的tag。如果没有设置此参数,表示删除tagOrId指定对象的所有tag。
dtag()的作用是从tagOrId指定的对象中删除指定的标签tag。如果tagOrId指定的对象不存在或者tagDelete不存在,并不会产生错误。

import tkinter as tk
root=tk.Tk()
root.geometry('320x240')
b1=tk.Canvas(root)
t=b1.create_text(120,20,text='新年快乐',tag='txt')
def dtag():
    b1.dtag(t,'txt')
    print(b1.gettags(t))
b2=tk.Button(root,text='Dtag',command=dtag)
b2.pack()
b1.pack()
print(b1.gettags(t))
root.mainloop()

说明:tag(标签)的信息可以通过gettags()方法获取。
18.2.26 find_above(tagOrId)
返回在 tagOrId参数指定的对象之上的 ID。如果tagOrId是最顶端的对象,那么返回一个空元组。如果有多个对象符合要求,会返回最顶端的那个对象。tagOrId可以是对象ID,也可以是tag。
(1)tagOrId: 指定对象ID或者标签tag。

import tkinter as tk
root=tk.Tk()
root.geometry('320x240')
b1=tk.Canvas(root)
t=b1.create_text(120,20,text='新年快乐',tag='txt')
t2=b1.create_text(220,20,text='新年快乐2',tag='txt2')
def find_above():
    tag=b1.find_above(t)
    print(tag)
b2=tk.Button(root,text='Find Above',command=find_above)
b2.pack()
b1.pack()
root.mainloop()
结果:
(2,)

说明:t2的值是2,所以返回的元组是(2,)
18.2.27 find_all()
返回 Canvas 控件上所有的对象。返回的格式是一个包括所有对象ID的元组。最顶端的对象在元组的最后一个。
18.2.28 find_below(tagOrId)
返回在 tagOrId参数指定的对象之下的 ID。如果tagOrId是最底层的对象,那么返回一个空

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值