Next: 视窗管理员 | Previous: Packer | 内容
结合元件变数
某些元件的目前值的设定(像输入元件)可以使用特殊的选项来直接连结应用程式的变数,这些选项是 variable、
textvariable、
onvalue、
offvalue及
value。这种连结有两种方式:假如变数因为某种原因改变,它所连结的元件将会被更新以反应新的值。
不幸的是,Tkinter目前的运作无法透过variable
或 textvariable选项来
递交任何的Python变数给元件,这唯一一种可运作的变数叫做Variable是继承自类别的子类别变数,这个变数是定义在Tkinter模组中,这种子类别的变数有很多有用的,有定义的有:StringVar、
IntVar、
DoubleVar
及BooleanVar。要读取这样一个变数的目前值里如说
myval,你可以呼叫 get() 方法,并且使用set()方法来改变它的值,假如你遵从这种协定,元件就可以追踪变数的值,你就无须另外有更多的介入。
举例:
class App(Frame):
def __init__(self, master=None):
Frame.__init__(self, master)
self.pack()
self.entrythingy = Entry()
self.entrythingy.pack()
self.button.pack()
# here is the application variable
self.contents = StringVar()
# set it to some value
self.contents.set(“this is a variable”)
# tell the entry widget to watch this variable
self.entrythingy[“textvariable”] = self.contents
# and here we get a callback when the user hits return.
# we will have the program print out the value of the
# application variable when the user hits return
self.entrythingy.bind(‘<Key-Return>’,
self.print_contents)
def print_contents(self, event):
print “hi. contents of entry is now —->”,
self.contents.get()
3 則留言
Comments are closed.