[干货]tkinter动态修改label | label不显示PY_VAR小技巧

本文分享了使用tkinter开发GUI时如何动态修改label内容的技巧,包括通过对象['属性'] = 内容的方式实现属性的动态赋值,以及解决label显示PY_VAR问题的方法,同时探讨了不同修改text内容的策略。

这几天再用tkinter开发GUI, 有点小心得记录一下.


TIP1 tkinter动态修改label

说来惭愧这个其实是从百度看来的, 但是发现这个操作有点强就展开了无限延申, 甚至延伸出了TIP2
这里是地址

动态修改label听说在set之后可以直接变化, 但是我试了好几种方法都不行. 在网上找了半天然后发现了一个神奇的办法.

具体就是 对象[“属性”] = 内容

	label=Enter(root,text="My name is rocky")
	
	label["text"]="My name is Ben"

但是我又开发出了一个新玩法. 可以对没有的属性通过这个方法生成该属性, 从而避免特定位置声明属性可能造成错误.(比如说还没定义图片就初始化啦什么的)

	label = Lebel(root, text=StringVar)

	label["image"] = img

这样子就可以添加image到label, 等同于下

	label = Lebel(root, text=StringVar, image=img)

但是又可以避免初始化的时候还没有定义图片的问题

例如:

	def __init__(self):
			self.label = Lebel(root, text=StringVar, image=img)

此时就会因为img未定义而报错(如果不想初始化时先显示图片)

但是如果这么写

	def __init__(self):
			self.label = Lebel(root, text=StringVar)
	def xxxxx:
			label["image"] = img

就可以避免这个问题


问: 那你为什么不先不写image的值, 只写image呢?

答:…我tmd忘记了…


TIP2 label不显示PY_VAR小技巧

如果想利用.set的特性, 对text进行修改的话可以这样.

	str = StringVar()
	label = Label(root, text=str)
	str.set("这里写要显示的内容")

就可以随时set随时显示(别人是这样, 然而我不知道我为什么显示不出来…)

但是这样的话初始化的时候就会显示PY_VAR这样的信息. 很不好看.

所以我们可以这样操作

	str = StringVar()
	label = Label(root, text="")
	str.set("这里写要显示的内容")

但是这样还怎么修改text的内容呢???

我们就要进行结合TIP1操作

	label = Label(root, text="")
	label["text"] = "这里写要显示的内容" / 常量 / 变量

问: 那你为什么不只写

	label = Label(root, text)
	label["text"] = "这里写要显示的内容" / 常量 / 变量

或者按照你上面说的,直接

	label = Label(root)
	label["text"] = "这里写要显示的内容" / 常量 / 变量

不也行吗?还更简单!

答:…我tmd又忘记了…


								Copyright: dolor_059

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值