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