內(nèi)置GUI模塊:Tkinter

??? Tkinter 是 python 內(nèi)置的快速 GUI 開發(fā)模塊,可用來在短時間內(nèi)開發(fā)出 UI 界面,且是跨平臺的,使用的都是所在操作系統(tǒng)的組件,缺點是可能有點丑。。。

??? 我們開始吧,這里我把自己學(xué)到的東西記下,所以不一定全面,學(xué)到新東西會持續(xù)更新。


??? 首先,學(xué)GUI要先想好要干嘛,因為這涉及到一個布置的問題,容易不知如何下手。

一般情況下,你要建一個窗口,然后在這個窗口里加一些東西,比如按鈕,滾動條,等等

現(xiàn)在以一個實際情況來學(xué)習(xí):

首先 導(dǎo)入 自帶包 Tkinter

現(xiàn)在你要創(chuàng)建一個窗口,python里則是建立一個窗口對象: window = Tk()

在這個窗口上加標題:window.title('This is a title')

設(shè)置窗口大?。簑indow.geometry('400x200')? ? #注意中間的符號是字母 x,長和高

在這個窗口中加個按鈕,首先要見一個按鈕對象:button = Button(window,text = 'This is a button',command = a_function)

第一個參數(shù):要放置的地方;第二個:按鈕上的文字;第三個:觸法按鈕后要執(zhí)行的函數(shù)

還可以接受背景顏色:bg;字體顏色:fg等參數(shù)

現(xiàn)在設(shè)置按鈕在這個窗口中的擺放位置:button.pack(side = BOTTOM)? #這里是個設(shè)置好的 BOTTOM 表示底部,TOP, BOTTOM, LEFT, RIGHT四個參數(shù),分別指代上下左右。

pack()是Tkinter中一個簡單的布局管理器,WidgetObject.pack(option, …),一般選項有,expand,side,fill

就是這么簡單。




??? 好了,到這,對如何使用有了一個大致了解,接下來介紹各種組件:



Label():


建立一個標簽,參數(shù)和Button差不多,注意像這種東西使用時都必須 pack() 了之后才有,

?????? 就像你買了東西放在那里別人才看到

??????? 可接受參數(shù) bitmap 顯示一些特定的圖標有:

?* error

* hourglass

* info

* questhead

* question

* warning

* gray12

* gray25

* gray50

* gray75

??????????? bitmap = 'error' 即可,據(jù)說還可以顯示些自己的圖標,格式為: bitmap="@/path /bitmapname"

???????????? 可接受參數(shù) fg,bg 改變前景色與背景色,支持顏色單詞如'red'? 還有 #RRGGBB

???????????? 可接受參數(shù)? width,height,調(diào)整label的寬度和高度

? ? ? ? ? ? 可接受參數(shù) compound? 指定文本(text)與圖像(bitmap/image)是如何在 Label 上示,? ? ? ? ? ? ? ? ? ? 缺省為 None.? 記住總是圖像相對于文字的位置,只有其一不影響? ?

可以使用的值:

left:? ? ? 圖像居左

right:? ? ? 圖像居右

top:? ? ? 圖像居上

bottom:圖像居下

center:文字覆蓋在圖像上

可接受參數(shù):

wraplength:? 指定多少單位后開始換行

justify:? ? ? ? ? ? 指定多行的對齊方式 (left,right)

ahchor:? ? ? ? 指定文本(text)或圖像(bitmap/image)在 Label 中的顯示位置

其中 ahchor 接受如下位置:

nw? ? ? ? ? n? ? ? ? ? ? ? ne

w? ? ? ? center? ? ? ? ? ? e

sw? ? ? ? ? s? ? ? ? ? ? ? se




Button :


主要要了解的就是參數(shù):

接受參數(shù) command 一個函數(shù),事件處理

接受參數(shù) relief 來設(shè)置 button 的外觀 可選的有: FLAT,GROOVE ,RAISED ,RIDGE ,SOLID ,SUNKEN不用字符串

效果自己試一下就知道

同樣接受 bitmap,compound,width,height,anchor,fg,bg,relief

接受參數(shù) state 指定狀態(tài),:normal,active,disabled

接受參數(shù) textvariable :使button與變量綁定,綁定之后 Button 上就會顯示這個變量的文本



Entry:


沒有 text 這一屬性

接受參數(shù) textvariable ,與變量綁定,在框中顯示,比如字符串,但 這里必須是對象型的:s = StringVar(),然后用set()方法設(shè)置字符串內(nèi)容

還有,StringVar() 是在 Tkinter 包內(nèi)的,而且必須 已存在一個 Tk() 對象,才可聲明成功,類似的還有:IntVar() 等

接受參數(shù) state 設(shè)置狀態(tài),如只讀:'readonly' 還有 normal/active/disabled等

另外說一下:設(shè)置這些屬性,都可以與字典一樣設(shè)置 : entry['state'] = 'readonly',不一定要初始化設(shè)置

接受參數(shù) show 設(shè)置輸入顯示均為所設(shè)置字符,類似于密碼輸入框,可以設(shè)置為任意字符,超過一個以第一個為準

接受validate 限制輸入的內(nèi)容,暫時不知怎么用

還有其他的屬性 fg/bg/relief/justify/state 使用方法與 Button 相同

要注意的是沒有 width,height 屬性


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容