Tkinter (18) 可微调输入部件 Spinbox

可微调输入部件的创建及其选项

部件包含三个主要的部份, 输入区, 上箭头, 下箭头

spin_box = tk.Spinbox(parent, option, ...)
选项 说明
activebackground active 时的背景色
bg or background 背景色
bd or borderwidth 滑块与槽外框的寛度,内定为 1 点素
buttonbackground 箭头的背景色, 内定为 gray
buttoncursor 当鼠标移到箭头时,所显示的鼠标图示
buttondownrelief 下箭头外框花样,内定为 RAISED
buttonup 上箭头外框花样,内定为 RAISED
command 箭头点击时调用的程序
cursor 当鼠标移到部件输入处时,所显示的鼠标图示
disabledbackground disabled 时,背景颜色
disabledforeground disabled 时,前景颜色
exportselection 文本可否复制到剪贴板 0/1
font 文本字体
fg or foreground 输入文本及箭头的颜色
format format 格式字符串, 用来定义 from_ ~ to 的数值在输入区的文本, 比如 ‘%10.4f’
from_ 以箭头设定值范围的起始值
highlightbackground 非聚焦时的聚焦颜色
highlightcolor 聚焦时的聚焦颜色
highlightthickness 聚焦厚度,内定 1, 0 则无
increment 以箭头设定值范围的步进值
insertbackground 插入光标的背景颜色,内定为黑色
insertborderwidth 插入光标外框寛度, 内定为 0, 样式为 RAISED
insertofftime 插入光标消失的时间
insertontime 插入光标显现的时间
insertwidth 插入光标寛度,内定为 2 图素
justify 文本在输入部件中相对的位置,内定为 LEFT, RIGHT/CENTER
readonlybackground readonly 时的背景色
relief 外框花样,内定为 SUNKEN
repeatdelay 直到经过指定时间 (毫秒), 开始重复按下按钮, 内定为 400 ms
repeatinterval 重复间隔,以毫秒为单位重复按下按钮, 内定为 100 ms
selectbackground 被选择文本的背景颜色
selectborderwidth 被选择文本的外框寛度
selectforeground 被选择文本的前景颜色
state NORMAL, DISABLED, ‘readonly’ (仍可以复制内容到剪贴板, 仍然可以箭头来改变内容)
takefocus TAB 键在部件是否会循环焦点 0/1
textvariable 输入部件中的文本内容,必须使用 StringVar()
to 以箭头设定值范围的终止值
values 除了数值的内容外, 也可以使用本选项来提供 tuple 的字符串供箭头选择
width 部件输入区的字寛,内定为 20 个标准字寛
wrap 上下箭头选定内容时到了上下限时, 是否循环到另一头, 内定为 False
xscrollcommand 输入区水平滚动条 scrollbar.set () 方法

可微调输入部件的方法

方法 说明
bbox(index) 取得输入区字符串索引 index 所在的字符, 左上角的座标 (x, y), 寛度/高度 w/h, 返回 (x, y, w, h)
delete(first, last=None) 删除输入区的子字符串, 参数为子字符串的索引值
get() 返回输入区内的字符串
icursor(index) 设定输入光标所在位置, 参数为索引值
identify(x, y) 返回座标位置的零件, 有 ‘entry’, ‘buttonup’, ‘buttondown’, ‘’ (其他)
index(i) 返回相关位置的索引值, 参数有END(行末), INSERT(插入点), ANCHOR, SEL_FIRST(前选择点), SEL_LAST(后选择点), “@x”(近x 处)
insert(index, text) 在索引处插入字符串
invoke(element) 以 ‘buttonup’ 或 ‘buttondown’ 来调用回调
scan_dragto(x) 鼠标键按下事件处理程序中已标记位置时,鼠标滚动事件处理程序拖弋卷动部件,x 为位置
scan_mark(x) 鼠标键按下事件处理程序中标记位置 x
selection(‘from’, index) 设置选择区的起始索引处 index
selection(‘to’, index) 选择 ANCHOR ~ index (不含) 的文本
selection(‘range’, start, end) 选择 start ~ end (不含) 的文本
selection_clear() 清除输入区字符串的选择
selection_get() 返回输入区选择的字符串

注: 输入区字符串无选择区时, 引用将为导致 tk.TclError 错误.

范例视窗及代码

Python

import tkinter as tk

root = tk.Tk()
root.wm_title("Spinbox Demo")

font = ('Courier New', 40, 'bold')

spin_box = tk.Spinbox(root, from_=0, to=10, increment=2, font=font, width=5)
spin_box.grid(row=0, column=0)

root.mainloop()
本作品采用《CC 协议》,转载必须注明作者和本文链接
Jason Yang
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!