可微調輸入部件的建立及其選項
部件包含三個主要的部份, 輸入區, 上箭頭, 下箭頭
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 協議》,轉載必須註明作者和本文連結