溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Tkinter中怎么通過OptionDB控制控件屬性

發(fā)布時間:2022-01-14 08:10:08 來源:億速云 閱讀:131 作者:iii 欄目:大數(shù)據(jù)

本篇內(nèi)容介紹了“Tkinter中怎么通過OptionDB控制控件屬性”的有關(guān)知識,在實(shí)際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

我們基本上對Tkinter中的每一種基本控件都進(jìn)行了簡單的說明。在這些的示例代碼中,用戶可以通過屬性控制每個控件的前景色,背景色,字體等各種屬性。這種方式的直觀易懂,但是存在幾個缺點(diǎn):

  1. 即使希望同樣的設(shè)定,也需要每個控件單獨(dú)制定。

  2. 設(shè)定信息淹沒在代碼中,無論是增減還是調(diào)整屬性都需要修改代碼。麻煩不說還有可能破壞代碼的完整性。

這兩個問題都可以通過Tkinter提供的OptionDB解決。接下來我們以計算器小程序?yàn)槔f明其用法。這個程序的初始狀態(tài)如下:

Tkinter中怎么通過OptionDB控制控件屬性

第一個問題,Tkinter提供了option_add方法用戶根據(jù)分類分類制定控件屬性的方式,例如對于表示計算結(jié)果和表達(dá)式的兩個標(biāo)簽控件來講,可以使用下面的代碼指定它們的背景色:

root.option_add('*Label.background', "#a0ffa0")

代碼中‘*Label.background’的含義就是所有Label控件的背景色。

如果需要對每個控件進(jìn)行單獨(dú)控制,首先要為控件指定名稱。下面的代碼通過name屬性分別為兩個標(biāo)簽控件指定了各自的名稱。

# create a label to change state.upper_display = Label(root,                      name='upperDisplay',                      foreground="#000000",                      width=24, anchor=E)upper_display.grid(row=1, column=0, columnspan=4, sticky=E + W)
# create a label to change state.lower_display = Label(root,                      name='lowerDisplay',                      foreground="#000000",                      width=12, anchor=E)lower_display.grid(row=2, column=0, columnspan=4, sticky=E + W)

名稱指定完成之后就可以使用名稱為特定的控件指定屬性了。為了和分類指定想?yún)^(qū)別,控件的名稱必須小寫。

ftTimes1 = Font(family='Times', size=12, weight=BOLD)ftTimes2 = Font(family='Times', size=24, weight=BOLD)root.option_add('*upperDisplay.font', ftTimes1)root.option_add('*lowerDisplay.font', ftTimes2)root.option_add('*Button*font', ftTimes1)

除了兩個標(biāo)簽之外,代碼還順便為所有的按鈕指定了字體,其結(jié)果如下:

Tkinter中怎么通過OptionDB控制控件屬性

通過上面的例子可以看到,通過使用OptionDB,只要使用很少的代碼,就可以實(shí)現(xiàn)同時為多個控件指定屬性的功能。除此之外,Tkinter還提供了通過配置文件修改控件屬性的功能。下面的代碼就是指定計算器中每個控件的字體和顏色的實(shí)例。

*Label.background:#a0ffa0*upperDisplay.font:times 12 bold*lowerDisplay.font:times 24 bold*Button*font: Meiryo 12 bold*Button*foreground:#007700*ckey*foreground:#ff0000*cekey*foreground:#ff0000*back*foreground:#ff0000*devkey*foreground:#0000ff*mulkey*foreground:#0000ff*minukey*foreground:#0000ff*pluskey*foreground:#0000ff*equalkey*foreground:#000000

配置文件完成之后,取一個適當(dāng)?shù)拿直4婕纯伞1纠惺褂?6 OpDb.txt。

最后一步就是在代碼中增加下面一行以讀入配置文件:

root.option_readfile('26 OpDb.txt')

程序執(zhí)行結(jié)果如下:

Tkinter中怎么通過OptionDB控制控件屬性

“Tkinter中怎么通過OptionDB控制控件屬性”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI