您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“Tkinter中怎么通過OptionDB控制控件屬性”的有關(guān)知識,在實(shí)際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
我們基本上對Tkinter中的每一種基本控件都進(jìn)行了簡單的說明。在這些的示例代碼中,用戶可以通過屬性控制每個控件的前景色,背景色,字體等各種屬性。這種方式的直觀易懂,但是存在幾個缺點(diǎn):
即使希望同樣的設(shè)定,也需要每個控件單獨(dú)制定。
設(shè)定信息淹沒在代碼中,無論是增減還是調(diào)整屬性都需要修改代碼。麻煩不說還有可能破壞代碼的完整性。
這兩個問題都可以通過Tkinter提供的OptionDB解決。接下來我們以計算器小程序?yàn)槔f明其用法。這個程序的初始狀態(tài)如下:
第一個問題,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é)果如下:
通過上面的例子可以看到,通過使用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控制控件屬性”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
免責(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)容。