这篇文章主要介绍了Tkinter的微调框Spinbox怎么用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Tkinter的微调框Spinbox怎么用文章都会有所收获,下面我们一起来看看吧。
成都创新互联公司专注于柯桥企业网站建设,成都响应式网站建设公司,商城开发。柯桥网站建设公司,为柯桥等地区提供建站服务。全流程定制网站,专业设计,全程项目跟踪,成都创新互联公司专业和态度为您提供的服务
Spinbox控件可以用来从一组数据中选择一个数,也可以用来对设定值进行微调。
首先还是准备字体和信息标签:
# create font
ftTimes = Font(family='Times', size=12, weight=BOLD)
# create a label to display message.
label_text = StringVar()
label = Label(root, textvariable=label_text)
label.grid(row=2, column=0, columnspan=2, sticky=E + W)
生成一个用于文本选择的Spinbox:
# value changed handling.
def spin_changed(*args):
# get current value and set to label.
label_text.set(tb.get())
# create a Radiobutton for Teacher.
tb = Spinbox(root,values=('Teacher', 'Student', 'Worker'),
state='readonly',
background="#ffffa0",foreground="#ff0000",
activebackground="#a0ffa0",
command=spin_changed, font=ftTimes)
tb.grid(row=0, column=0, columnspan=1, sticky=W)
spin_changed函数用于处理选择内容发生变化时的表示。它在构建Spinbox控件时通过command属性指定,其内容是使用Spinbox的get方法取得选中的内容并设定到标签控件上。
spinbox通过values属性指定可选项集合。state指定为'readonly'可以限制用户输入。
第二个Spinbox是一个数字微调框,其代码如下:
# control variable of value spinbox.
vb_var = StringVar()
vb_var.set('0.6')
def isOkay(text):
if text == '-':
return True
if len(text)==0:
return True
value = int(float(text) * 100)
if -100 <= value <= 100:
if value % 20 == 0:
return True
return False
首先声明一个StringVar类型的变量用于设定和取得当前的选择结果。
接下来的isOkay函数需要说明一下。它的功能是当用户对Spinbox的选择结果进行按键操作时判断内容的合法性。在这个函数中,我们认为单独的‘-’,空字符或者-1到1之间、间隔为0.2的值都是合法的。
接下来将这个函数登录到root窗口。
okayCommand=root.register(isOkay)
在构建数值输入SpinBox时,首先使用from_,to_和increment属性执行合法数值。wrap=True可以实现数值的循环。
# create a value spinbox.vb = Spinbox(root, from_=-1.0,to=1.0,increment=0.2,wrap=True, background="#ffffa0", foreground="#ff0000", activebackground="#a0ffa0", textvariable=vb_var, font=ftTimes, validate='key', validatecommand=(okayCommand, '%P'))vb.grid(row=1, column=0, columnspan=1, sticky=W)
validatecommand属性用于指定前面准备的okayCommand,'%P'表示参数为待检查的输入结果。另外一个validate属性指定为'key'表示这个命令会在用户键操作时被调用。这两个属性加上isOkey函数和注册okayCommand四者结合在一起,实现了输入检查。
最后是监控变量的内容并表示在信息标签上。
def var_changed(*args): label_text.set(vb_var.get())# set variable observer.vb_var.trace_variable('w', var_changed)
关于“Tkinter的微调框Spinbox怎么用”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Tkinter的微调框Spinbox怎么用”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注创新互联行业资讯频道。