您好,登錄后才能下訂單哦!
這篇文章主要介紹了Tkinter的微調框Spinbox怎么用的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Tkinter的微調框Spinbox怎么用文章都會有所收獲,下面我們一起來看看吧。
Spinbox控件可以用來從一組數據中選擇一個數,也可以用來對設定值進行微調。
首先還是準備字體和信息標簽:
# create font
ftTimes = Font(family='Times', size=12, weight=BOLD)
# create a label to display message.
label_text = StringVar()
label = Label(root, textvariable=label_text)
label.grid(row=2, column=0, columnspan=2, sticky=E + W)
生成一個用于文本選擇的Spinbox:
# value changed handling.
def spin_changed(*args):
# get current value and set to label.
label_text.set(tb.get())
# create a Radiobutton for Teacher.
tb = Spinbox(root,values=('Teacher', 'Student', 'Worker'),
state='readonly',
background="#ffffa0",foreground="#ff0000",
activebackground="#a0ffa0",
command=spin_changed, font=ftTimes)
tb.grid(row=0, column=0, columnspan=1, sticky=W)
spin_changed函數用于處理選擇內容發生變化時的表示。它在構建Spinbox控件時通過command屬性指定,其內容是使用Spinbox的get方法取得選中的內容并設定到標簽控件上。
spinbox通過values屬性指定可選項集合。state指定為'readonly'可以限制用戶輸入。
第二個Spinbox是一個數字微調框,其代碼如下:
# control variable of value spinbox.
vb_var = StringVar()
vb_var.set('0.6')
def isOkay(text):
if text == '-':
return True
if len(text)==0:
return True
value = int(float(text) * 100)
if -100 <= value <= 100:
if value % 20 == 0:
return True
return False
首先聲明一個StringVar類型的變量用于設定和取得當前的選擇結果。
接下來的isOkay函數需要說明一下。它的功能是當用戶對Spinbox的選擇結果進行按鍵操作時判斷內容的合法性。在這個函數中,我們認為單獨的‘-’,空字符或者-1到1之間、間隔為0.2的值都是合法的。
接下來將這個函數登錄到root窗口。
okayCommand=root.register(isOkay)
在構建數值輸入SpinBox時,首先使用from_,to_和increment屬性執行合法數值。wrap=True可以實現數值的循環。
# create a value spinbox.vb = Spinbox(root, from_=-1.0,to=1.0,increment=0.2,wrap=True, background="#ffffa0", foreground="#ff0000", activebackground="#a0ffa0", textvariable=vb_var, font=ftTimes, validate='key', validatecommand=(okayCommand, '%P'))vb.grid(row=1, column=0, columnspan=1, sticky=W)
validatecommand屬性用于指定前面準備的okayCommand,'%P'表示參數為待檢查的輸入結果。另外一個validate屬性指定為'key'表示這個命令會在用戶鍵操作時被調用。這兩個屬性加上isOkey函數和注冊okayCommand四者結合在一起,實現了輸入檢查。
最后是監控變量的內容并表示在信息標簽上。
def var_changed(*args): label_text.set(vb_var.get())# set variable observer.vb_var.trace_variable('w', var_changed)
關于“Tkinter的微調框Spinbox怎么用”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“Tkinter的微調框Spinbox怎么用”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。