千家信息网

Tkinter的微调框Spinbox怎么用

发表于:2025-01-25 作者:千家信息网编辑
千家信息网最后更新 2025年01月25日,这篇文章主要介绍了Tkinter的微调框Spinbox怎么用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Tkinter的微调框Spinbox怎么用文章都会有所收获,下面
千家信息网最后更新 2025年01月25日Tkinter的微调框Spinbox怎么用

这篇文章主要介绍了Tkinter的微调框Spinbox怎么用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Tkinter的微调框Spinbox怎么用文章都会有所收获,下面我们一起来看看吧。

Spinbox控件可以用来从一组数据中选择一个数,也可以用来对设定值进行微调。

首先还是准备字体和信息标签:

# create fontftTimes = 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怎么用"知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。

0