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 错误.
范例视窗及代码

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 协议》,转载必须注明作者和本文链接
关于 LearnKu