tkinter-spinbox

spinbox相当于entry的扩展,除了直接在spinbox中编辑或修改其值外,还可以通过上、下按钮来升序或降序地选择其值。

创建一个空的spinbox

from tkinter import Tk,Spinbox,StringVar,Button

main_win = Tk()
main_win.title('渔道的Spinbox控件')
width = 300 
height = 300 
main_win.geometry(f'{width}x{height}')

# 创建spinbox
s = Spinbox(main_win)
s.pack()

main_win.mainloop()

在这里插入图片描述

bg, fg

s = Spinbox(main_win, bg='yellow', fg='red')
s.pack()

在这里插入图片描述

bg表示背景色,fg不仅是设置文字的颜色,还改变箭头的颜色。

from_,to,increment

# from_ 指定spinbox的值范围的最小值
# to 指定spinbox的值范围的最大值
# increment 指定步进值, 默认为1
s = Spinbox(main_win, bg='yellow',from_=1, to=100, increment=10)
s.pack()

在这里插入图片描述

values

# 指定spinbox的值,values可以是一个列表或元组
# 如果指定了values, from_,to,increment将被屏蔽
values = (1, 2, 3, 4, 5, 6)# spinbox将只能在1-6范围内增减
# values = ('one', 'two', 'three', 'four', 'five', 'six')# spinbox将显示values中的字符串元素
s = Spinbox(main_win, bg='yellow',from_=1, to=100, values=values)
s.pack()

在这里插入图片描述

在这里插入图片描述

textvariable,command

def spin_cb():
    print(f'xxx, {spinval.get()}')
# textvariable
# 当spinbox的值发生变化时,textvariable也同步记录变化后的值
spinval = StringVar()
s = Spinbox(main_win, from_=1.0, to=100.0, textvariable=spinval, command=spin_cb)
s.pack()

当点击spinbox的箭头,修改它的显示值时,spin_cb被触发,通过spinval打印spinbox的当前值。

### Spinbox 组件概述 Spinbox 是一种允许用户通过点击上下箭头来选择数值的输入控件。这种组件通常用于让用户在一个预定义范围内选择整数或浮点数,也可以自定义选项列表。 在 Python 中,`tkinter.Spinbox` 提供了一个简单易用的方式来创建此类交互式输入框[^4]。 ### 创建 Spinbox 控件 下面是一个简单的例子展示如何使用 `tkinter.Spinbox` 来构建一个基本的选择器: ```python import tkinter as tk def on_spinbox_change(): value = spin_box.get() label.config(text=f'当前值: {value}') root = tk.Tk() label = tk.Label(root, text="初始状态") label.pack(pady=10) spin_box = tk.Spinbox( root, from_=0, to=100, increment=5, command=on_spinbox_change ) spin_box.pack(pady=10) root.mainloop() ``` 在这个实例中,当用户改变旋钮中的值时会触发回调函数 `on_spinbox_change()` 更新标签显示的内容。这里设置了最小值为 0、最大值为 100 并且每次增减步长为 5。 ### 自定义 Spinbox 值域 除了设置固定的范围外,还可以指定特定字符串组成的元组作为可选项目: ```python values = ('苹果', '香蕉', '橙子') spin_box_custom_values = tk.Spinbox(root, values=values) spin_box_custom_values.pack(pady=10) ``` 这使得 Spinbox 不仅限于数字类型的输入,也能处理其他形式的数据集合。 ### 配置属性 - **from_**: 设置起始值 (注意下划线是为了避免与关键字冲突). - **to**: 设定结束值. - **increment**: 定义增量大小,默认情况下是 1. - **format**: 可以用来控制显示格式,比如保留几位小数等. 更多配置项可以查阅官方文档获取完整的参数说明.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sif_666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值