Python2.7 Tkinter动态修改Label、Botton等控件文本的可行方法

前言

 

最近毕设代码中期检查,检查的老师非要做一个系统出来,声称“起码得拿出一个界面”(我是个搞研究写论文的又不是做设计的,为什么要界面????)

然后开始折腾python的Tkinter,搞了一个demo出来,这里分享一下更改GUI上组件中text字段显示的方法以及遇到的坑。

 

注意事项

 

python2.7环境下,引入Tkinter时,字母T需要大写,python3则是小写。本文后续讨论的环境为python2.7。

 

方法

 

1、这个方法不可行(针对python2.7)

 

查到过一条百度经验:https://jingyan.baidu.com/article/7082dc1c68046ee40a89bda6.html

它的原文是:

label或者button没有setText或者set这样的函数。(这句话是对的)

不过可以直接使用赋值的方法来修改

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

他说,经验证,可以动态修改label上的文本。

验证了一下,然后呢?'NoneType' object does not support item assignment:

 

换了单引号双引号都不行。得出结论:这个方法可能适合python3,对于python2.7绝对不行。

 

2、python2.7中的可行方法

 

声明全局变量:

str_obj = tk.StringVar()
str_obj.set('your text')

在控件的创建时,其“text”字段使用前面定义的全局变量赋值,不能用预设的字符串,如下:

Label = tk.Label(frame1, textvariable=str_obj,width=40, justify=LEFT, background='#AEEEEE')

在声明控件中的文本的时候,注意关键字不是text,而是textvariable。

需要更改控件文本的时候,只需要用全局变量调用set函数即可,如下:

str_obj.set("new text")

最后GUI上的控件文本就被更改了。

你可能感兴趣的:(项目,&,课程学习,python,gui,tkinter)