的变量类别
前面我们了解到,Label和Entry这三个组件都具有文本的属性。我们可以通过()、()等方法设置文本。实际上,还有另一种使用变量方法的方法。该变量不是模块中的通用变量,而是模块中的变量class()及其下的4个子类:
var=() # 整型变量,默认值:0
var=() # 字符串变量,默认值:””(空字符串)
var=() # 浮点型变量,默认值:0.0
var=() # 布尔变量,默认值:False
变量设置方法 set()
get() 方法用于获取变量,set() 方法用于设置变量。下面是一个例子来说明:
我们用比较的方法来说明,先看不带变量设置标签显示文本的方法:
from tkinter import *
def callback():
la1.config(text="设置文本") # 通过config方法来再设置标签文本
root=Tk()
la1=Label(root,text='初始文本') # 通过text属性来设置标签文本
la1.pack()
but_set=Button(root,text="设 置",command=callback) # command参数来调用函数
but_set.pack(pady=10)
root.mainloop()
上面的代码没有使用变量来设置和重新设置标签的文本属性:
创建标签时,设置初始文本。
通过按钮的回调函数,使用()方法重新设置文本。
以下是如何使用变量:
在Lable和Entry这三个组件中,都有一个属性:在这个属性上绑定一个变量后,它们的Text会以一个变量的方法呈现。
绑定方法很简单,就是先创建一个变量,如果变量命名为var,然后在创建组件的时候用它来绑定这个变量: =var 然后,要设置变量就是var.set(set value )text函数的使用方法及实例,如果要获取这个变量的值,就是var.get()。看看下面的代码:
from tkinter import *
def callback():
var.set('再设置文本') # 通过变量set方法来再设置文本
root=Tk()
var=StringVar() # 建立变量var为字符串变量
var.set('初始文本') # 设置变量
la1=Label(root,textvariable=var) # 将变量var跟文本绑定在一起
la1.pack()
but_set=Button(root,text="设 置",command=callback) # command参数来调用函数
but_set.pack(pady=10)
root.mainloop()
运行这段代码的结果和上面使用 () 完全一样。哲不彪
我们可以使用相同的方法,也可以使用变量的方法来设置Entry的文本:
插入上面的标签创建和定位代码
la1=Label(root,textvariable=var) # 将变量var跟文本绑定在一起
la1.pack()
修改Entry的创建和定位代码:
en1=Entry(root,textvariable=var) # 将变量var跟文本绑定在一起
en1.pack()
运行结果,可以看到文本框的文字也可以通过变量set()方法来改变。
以此类推,可以通过变量来改变按钮的文字显示,将上面标签的创建定位代码改成按钮的创建定位代码
but1=Button(root,textvariable=var) # 将变量var跟文本绑定在一起
but1.pack()
运行结果:
获取变量get()的方法
上面讲解了变量设置方法set(),下面说一下变量获取方法get()
from tkinter import *
def callback():
print(var.get()) # 通过变量get方法来获取文本
root=Tk()
var=StringVar() # 建立变量var为字符串变量
var.set('初始文本') # 设置变量
en1=Entry(root,textvariable=var) # 将变量与文本绑定在一起
en1.pack()
but_set=Button(root,text="获 取",command=callback) # command参数来调用函数
but_set.pack(pady=10)
root.mainloop() # 源码来自wb98.com
运行结果
我们在文本框中输入不同的文本,点击按钮获取文本框的内容。根据上面代码的运行结果text函数的使用方法及实例,变量绑定其实是双向绑定。如果文本框的内容发生变化,变量也会发生变化。如果变量改变,文本框也会改变。
文章来源:http://www.toutiao.com/a7031330214877626883/