温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Tkinter的微调框Spinbox怎么用

发布时间:2022-01-13 18:03:31 来源:亿速云 阅读:255 作者:iii 栏目:大数据

这篇文章主要介绍了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怎么用”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI