??? 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 屬性