py 第三十三天 Tkinter14:Spinbox

一命浴、介紹

Spinbox 組件(Tk8.4 新增)是 Entry 組件的變體娄猫,用于從一些固定的值中選取一個(gè)。

二生闲、使用

Spinbox組件跟 Entry 組件用法非常相似媳溺,主要區(qū)別是使用Spinbox 組件,你可以通過范圍或者元組指定允許用戶輸入的內(nèi)容碍讯。

from tkinter import *

root = Tk()

w = Spinbox(root, from_=0, to=10)
w.pack()

mainloop()

你還可以通過元組指定允許輸入的值:

from tkinter import *

root = Tk()

w = Spinbox(root, values= ("小甲魚", "~風(fēng)介~", "wei_Y", "戴宇軒"))
w.pack()

mainloop()

三悬蔽、參數(shù)

Spinbox(master=None, **options) (class)

master -- 父組件
**options -- 組件選項(xiàng),下方表格詳細(xì)列舉了各個(gè)選項(xiàng)的具體含義和用法:

選項(xiàng) 含義
activebackground 設(shè)置當(dāng) Spinbox 處于 ACTIVE 狀態(tài)下的背景顏色
background 1. 設(shè)置背景顏色
2. 默認(rèn)值由系統(tǒng)指定
bg 跟 background 一樣
borderwidth 1. 設(shè)置邊框?qū)挾?br>2. 默認(rèn)值是 1 或 2 像素
buttonbackground 設(shè)置調(diào)節(jié)箭頭的背景顏色
buttoncursor 指定當(dāng)鼠標(biāo)在調(diào)節(jié)箭頭上方的鼠標(biāo)樣式
buttondownrelief 1. 指定向下調(diào)節(jié)箭頭的樣式
2. 默認(rèn)值是 RAISED
3. 還可以設(shè)置為 FLAT捉兴,SUNKEN蝎困,GROOVE 和 RIDGE
buttonup 1. 指定向上調(diào)節(jié)箭頭的樣式
2. 默認(rèn)值是 RAISED
3. 還可以設(shè)置為 FLAT,SUNKEN倍啥,GROOVE 和 RIDGE
command 1. 指定一個(gè)函數(shù)禾乘,當(dāng)用戶點(diǎn)擊調(diào)節(jié)箭頭的時(shí)候?qū)⒆詣诱{(diào)用該函數(shù)
2. 注意:當(dāng)用戶直接在輸入框中輸入數(shù)據(jù)時(shí)并不會觸發(fā)該函數(shù)
cursor 1. 指定當(dāng)鼠標(biāo)在 Spinbox 上飄過的時(shí)候的鼠標(biāo)樣式
2. 默認(rèn)值由系統(tǒng)指定
disabledbackground 設(shè)置當(dāng) Spinbox 處于 DISABLED 狀態(tài)下的背景顏色
disabledforeground 設(shè)置當(dāng) Spinbox 處于 DISABLED 狀態(tài)下的前景顏色
exportselection 1. 指定選中的文本是否可以被復(fù)制到剪貼板
2. 默認(rèn)值是 True
3. 可以修改為 False 表示不允許復(fù)制文本
font 1. 指定 Spinbox 中文本的字體
2. 默認(rèn)值由系統(tǒng)指定
foreground 1. 設(shè)置前景(文本)顏色
2. 默認(rèn)值由系統(tǒng)指定
fg 跟 foreground 一樣
format 1. 使用該選項(xiàng)設(shè)置選擇數(shù)值的樣式(from_ 和 to 指定范圍,用戶自行輸入的不算)
2. 例如 format='%10.4f' 表示顯示的數(shù)值占 10 位虽缕,小數(shù)點(diǎn)后保留 4 位
from_ 1. 該選項(xiàng)和 to 選項(xiàng)共同指定一個(gè)范圍的數(shù)值
2. increment 選項(xiàng)設(shè)置每次點(diǎn)擊調(diào)節(jié)箭頭遞增(遞減)的精度
highlightbackground 1. 指定當(dāng) Spinbox 沒有獲得焦點(diǎn)的時(shí)候高亮邊框的顏色
2. 默認(rèn)值由系統(tǒng)指定
highlightcolor 1. 指定當(dāng) Spinbox 獲得焦點(diǎn)的時(shí)候高亮邊框的顏色
2. 默認(rèn)值由系統(tǒng)指定
highlightthickness 指定高亮邊框的寬度
increment 1. 該選項(xiàng)指定當(dāng)用戶每次點(diǎn)擊調(diào)節(jié)箭頭的時(shí)候遞增(遞減)的精度
2. 例如 from_=1, to=10, increment=0.5始藕,那么每次用戶點(diǎn)擊調(diào)節(jié)箭頭的時(shí)候,輸入框中的數(shù)字遞增(遞減)0.5
insertbackground 指定輸入光標(biāo)的顏色
insertborderwidth 1. 指定輸入光標(biāo)的邊框?qū)挾?br>2. 如果被設(shè)置為非 0 值,光標(biāo)樣式會被設(shè)置為 RAISED
3. 小甲魚溫馨提示:將 insertwidth 設(shè)置大一點(diǎn)才能看到效果哦
insertofftime 1. 該選項(xiàng)控制光標(biāo)的閃爍頻率(滅)
2. 單位是毫秒
insertontime 1. 該選項(xiàng)控制光標(biāo)的閃爍頻率(亮)
2. 單位是毫秒
insertwidth 1. 指定光標(biāo)的寬度
2. 默認(rèn)值是 1 或 2 像素
invalidcommand 1. 指定當(dāng)輸入框輸入的內(nèi)容“非法”時(shí)調(diào)用的函數(shù)
2. 也就是指定當(dāng) validateCommand 選項(xiàng)指定的函數(shù)返回 False 時(shí)的函數(shù)
3. 詳見 Entry 組件最下方小甲魚關(guān)于驗(yàn)證詳解
invcmd 跟 invalidcommand 一樣
justify 1. 定義如何對齊輸入框中的文本
2. 使用 LEFT伍派,RIGHT 或 CENTER
3. 默認(rèn)值是 LEFT
readonlybackground 設(shè)置當(dāng) Spinbox 處于 "readonly" 狀態(tài)下的背景顏色
relief 1. 指定邊框樣式
2. 默認(rèn)值是 SUNKEN
3. 其他可以選擇的值是 FLAT弟塞,RAISED,GROOVE 和 RIDGE
repeatdelay 1. 該選項(xiàng)指定鼠標(biāo)左鍵點(diǎn)擊滾動條凹槽的響應(yīng)時(shí)間
2. 默認(rèn)值是 400(毫秒)
repeatinterval 1. 該選項(xiàng)指定鼠標(biāo)左鍵緊按滾動條凹槽時(shí)的響應(yīng)間隔
2. 默認(rèn)值是 100(毫秒)
selectbackground 1. 指定輸入框的文本被選中時(shí)的背景顏色
2. 默認(rèn)值由系統(tǒng)指定
selectborderwidth 1. 指定輸入框的文本被選中時(shí)的邊框?qū)挾龋ㄟx中邊框)
2. 默認(rèn)值由系統(tǒng)指定
selectforeground 1. 指定輸入框的文本被選中時(shí)的字體顏色
2. 默認(rèn)值由系統(tǒng)指定
state 1. Spinbox 組件可以設(shè)置的狀態(tài):NORMAL拙已,DISABLED 或 "readonly"(注意决记,這個(gè)是字符串。它跟 DISABLED 相似倍踪,但它支持選中和拷貝系宫,只是不能修改,而 DISABLED 是完全禁止)
2. 默認(rèn)值是 NORMAL
3. 注意建车,如果此選項(xiàng)設(shè)置為 DISABLED 或 "readonly"扩借,那么調(diào)用 insert() 和 delete() 方法都會被忽略
takefocus 1. 指定使用 Tab 鍵可以將焦點(diǎn)移動到輸入框中
2. 默認(rèn)是開啟的,可以將該選項(xiàng)設(shè)置為 False 避免焦點(diǎn)在此輸入框中
textvariable 1. 指定一個(gè)與輸入框的內(nèi)容相關(guān)聯(lián)的 Tkinter 變量(通常是 StringVar)
2. 當(dāng)輸入框的內(nèi)容發(fā)生改變時(shí)缤至,該變量的值也會相應(yīng)發(fā)生改變
to 1. 該選項(xiàng)和 from_ 選項(xiàng)共同指定一個(gè)范圍的數(shù)值
2. increment 選項(xiàng)設(shè)置每次點(diǎn)擊調(diào)節(jié)箭頭遞增(遞減)的精度
validate 1. 該選項(xiàng)設(shè)置是否啟用內(nèi)容驗(yàn)證
2. 詳見 Entry 組件最下方小甲魚關(guān)于驗(yàn)證詳解
validatecommand 1. 該選項(xiàng)指定一個(gè)驗(yàn)證函數(shù)潮罪,用于驗(yàn)證輸入框內(nèi)容是否合法
2. 驗(yàn)證函數(shù)需要返回 True 或 False 表示驗(yàn)證結(jié)果
3. 注意,該選項(xiàng)只有當(dāng) validate 的值非 "none" 時(shí)才有效
3. 詳見本內(nèi)容最下方小甲魚關(guān)于驗(yàn)證詳解
vcmd 跟 validatecommand 一樣
values 1. 提供兩個(gè)方法限定用戶輸入的內(nèi)容领斥,一種是通過 from_ 和 to 選項(xiàng)設(shè)置范圍嫉到,另一種則是將可選值以元組的形式賦值給 values 選項(xiàng)
2. 例如 values= ("小甲魚", "風(fēng)介", "wei_Y", "戴宇軒") 則允許用戶在這 4 個(gè)字符串中選擇
width 1. 設(shè)置輸入框的寬度,以字符為單位
2. 默認(rèn)值是 20
3. 對于變寬字體來說月洛,組件的實(shí)際寬度等于字體的平均寬度乘以 width 選項(xiàng)的值
wrap 1. 默認(rèn)情況下(False)何恶,當(dāng)輸入框中的值是第一個(gè)(最后一個(gè))的時(shí)候,再點(diǎn)擊向上(向下)調(diào)節(jié)箭頭嚼黔,內(nèi)容不會改變
2. 當(dāng)該選項(xiàng)的值設(shè)置為 True细层,則當(dāng)達(dá)到第一個(gè)(最后一個(gè))值的時(shí)候,再點(diǎn)擊向上(向下)調(diào)節(jié)箭頭唬涧,內(nèi)容將回到最后一個(gè)(第一個(gè))
3. 小甲魚注:其實(shí)就是開啟循環(huán)的意思_
xscrollcommand 1. 與 scrollbar(滾動條)組件相關(guān)聯(lián)
2. 如果你覺得用戶輸入的內(nèi)容會超過該組件的輸入框?qū)挾纫呤辏敲纯梢钥紤]設(shè)置該選項(xiàng)
3. 使用方法可以參考:Scrollbar 組件

四、方法

bbox(index)
-- 返回一個(gè) 4 元組(x1, y1, x2, y2)用于描述輸入框中 index 參數(shù)指定的字符所在的矩形范圍

delete(first, last=None)
-- 刪除參數(shù) first 到 last 范圍內(nèi)(包含 first 和 last)的所有內(nèi)容
-- 如果忽略 last 參數(shù)碎节,表示刪除 first 參數(shù)指定的選項(xiàng)
-- 使用 delete(0, END) 實(shí)現(xiàn)刪除輸入框的所有內(nèi)容

get()
-- 返回 Spinbox 當(dāng)前的值

icursor(index)
-- 將光標(biāo)移動到 index 參數(shù)指定的位置
-- 這同時(shí)也會設(shè)置 INSERT 的值

identify(x, y)
-- 返回給定坐標(biāo)(x, y)在 Spinbox 中對應(yīng)的元素名字
-- 返回值可以是:"none"(什么都不是)捧搞,"buttondown"(向下調(diào)節(jié)箭頭),"buttonup"(向上調(diào)節(jié)箭頭)或 "entry"(輸入框)

index(index)
-- 返回與 index 參數(shù)相應(yīng)的選項(xiàng)的序號(例如 e.index(END))

insert(index, text)
-- 將 text 參數(shù)的內(nèi)容插入到 index 參數(shù)指定的位置
-- 使用 insert(INSERT, text) 將 text 參數(shù)指定的字符串插入到光標(biāo)的位置
-- 使用 insert(END, text) 將 text 參數(shù)指定的字符串插入到輸入框的末尾

invoke(element)
-- 調(diào)用該方法的效果相當(dāng)于用戶點(diǎn)擊調(diào)節(jié)箭頭
-- element 參數(shù)的值必須是 "buttonup" 或 "buttondown"

scan_dragto(x)
-- 見下方 scan_mark(x)

scan_mark(x)
-- 使用這種方式來實(shí)現(xiàn)輸入框內(nèi)容的滾動
-- 需要將鼠標(biāo)按下事件綁定到 scan_mark(x) 方法(x 是鼠標(biāo)當(dāng)前的水平位置)钓株,然后再將 <motion> 事件綁定到 scan_dragto(x) 方法(x 是鼠標(biāo)當(dāng)前的水平位置)实牡,就可以實(shí)現(xiàn)輸入框在當(dāng)前位置和 sacn_mack(x) 指定位置之間的水平滾動

selection('from', index)
-- 設(shè)置選中范圍的起始位置是 index 參數(shù)指定的值

selection('to', index)
-- 設(shè)置選中范圍的結(jié)束位置是 index 參數(shù)指定的值

selection('range', start, end)
-- 設(shè)置選中范圍是 start 到 end 參數(shù)之間的值

selection_adjust(index)
-- 該方法是為了確保輸入框中選中的范圍包含 index 參數(shù)所指定的字符
-- 如果選中的范圍已經(jīng)包含了該字符,那么什么事情也不會發(fā)生
-- 如果選中的范圍不包含該字符轴合,那么會從光標(biāo)的位置將選中的范圍擴(kuò)展至該字符

selection_clear()
-- 取消選中狀態(tài)

selection_element(element=None)
-- 該方法用于“設(shè)置”或“獲取”選擇范圍
-- 如果給 element 參數(shù)賦值创坞,那么表示設(shè)置選擇范圍
-- 否則表示獲得當(dāng)前的選擇范圍

https://fishc.com.cn/forum.php?mod=viewthread&tid=61187&extra=page%3D1%26filter%3Dtypeid%26typeid%3D604

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市受葛,隨后出現(xiàn)的幾起案子题涨,更是在濱河造成了極大的恐慌偎谁,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,248評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件纲堵,死亡現(xiàn)場離奇詭異巡雨,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)席函,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評論 2 381
  • 文/潘曉璐 我一進(jìn)店門铐望,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人茂附,你說我怎么就攤上這事正蛙。” “怎么了营曼?”我有些...
    開封第一講書人閱讀 153,443評論 0 344
  • 文/不壞的土叔 我叫張陵乒验,是天一觀的道長。 經(jīng)常有香客問我蒂阱,道長锻全,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,475評論 1 279
  • 正文 為了忘掉前任录煤,我火速辦了婚禮鳄厌,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘辐赞。我一直安慰自己部翘,他們只是感情好硝训,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,458評論 5 374
  • 文/花漫 我一把揭開白布响委。 她就那樣靜靜地躺著,像睡著了一般窖梁。 火紅的嫁衣襯著肌膚如雪赘风。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,185評論 1 284
  • 那天纵刘,我揣著相機(jī)與錄音邀窃,去河邊找鬼。 笑死假哎,一個(gè)胖子當(dāng)著我的面吹牛瞬捕,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播舵抹,決...
    沈念sama閱讀 38,451評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼肪虎,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了惧蛹?” 一聲冷哼從身側(cè)響起扇救,我...
    開封第一講書人閱讀 37,112評論 0 261
  • 序言:老撾萬榮一對情侶失蹤刑枝,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后迅腔,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體装畅,經(jīng)...
    沈念sama閱讀 43,609評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,083評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片兑障。...
    茶點(diǎn)故事閱讀 38,163評論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡罢艾,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出爱榔,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 33,803評論 4 323
  • 正文 年R本政府宣布双抽,位于F島的核電站,受9級特大地震影響闲礼,放射性物質(zhì)發(fā)生泄漏牍汹。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,357評論 3 307
  • 文/蒙蒙 一柬泽、第九天 我趴在偏房一處隱蔽的房頂上張望慎菲。 院中可真熱鬧,春花似錦锨并、人聲如沸露该。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽解幼。三九已至,卻和暖如春包警,著一層夾襖步出監(jiān)牢的瞬間撵摆,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評論 1 261
  • 我被黑心中介騙來泰國打工害晦, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留特铝,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,636評論 2 355
  • 正文 我出身青樓壹瘟,卻偏偏與公主長得像鲫剿,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子稻轨,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,925評論 2 344