學(xué)習(xí)筆記-Python Tkinter

1.簡介

  • Tkinter是 Python 的標準 GUI 庫沥阳。Python 使用 Tkinter 可以快速的創(chuàng)建 GUI 應(yīng)用程序跨琳。
    由于 Tkinter 是內(nèi)置到 python 的安裝包中、只要安裝好 Python 之后就能 import Tkinter 庫桐罕、而且 IDLE 也是用 Tkinter 編寫而成脉让、對于簡單的圖形界面 Tkinter 還是能應(yīng)付自如

2.常用控件

  • Label(標簽,就是界面上顯示的字)
  • Entry(輸入框)
  • Button(按鈕功炮,可以綁定各種封裝函數(shù))
  • Radiobutton(單選框)
  • Checkbuttion(復(fù)選框)
  • messagebox(消息彈出框)
  • Text(文本編輯框)
  • Listbox(列表控件)
  • Scrollbar(滾條控件)

3.控件參數(shù)

  • title:設(shè)置窗口的標題
參數(shù) 描述 實例
title 窗口標題 tk.TK().title("xxx")
geometry 設(shè)置窗口大小溅潜,中間不能是*,而是x tk.TK().geometry("100X100")
resizable 設(shè)置窗口是否可以變化高(height)薪伏、 寬(width)滚澜,True為可以變化,F(xiàn)alse為不可變化 tk.TK().resizable("width=False, height=True")
  • Label:標簽
參數(shù) 描述 實例
text 需要在界面顯示的Label標簽內(nèi)容 Label(root,text=‘xxxxx’)
height 組件的高度(所占行數(shù)) Label(root,text=‘xxxxx’嫁怀,height=2)
width 組件的寬度(所占字符個數(shù)) Label(root,text=‘xxxxx’设捐,height=2,width=20)
fg 前景字體顏色 Label(root,text=‘xxxxx’眶掌,fg='blue')---顯示字體為藍色
bg 背景字體顏色 Label(root,text=‘xxxxx’挡育,bg='blue')---顯示字體為藍色
justify 多行文本的對齊方式,可選參數(shù)為: LEFT朴爬、 CENTER、RIGHT橡淆,分別是向左召噩、居中、向右對齊 Label(root,text=‘xxxxx’逸爵,justify=tk.LEFT)
padx 文本左右兩側(cè)的空格數(shù)(默認為1) Label(root,text=‘xxxxx’具滴,padx=5)
pady 文本上下的空格數(shù)(默認為1) Label(root,text=‘xxxxx’,pady=5)
font 字體格式和大小 Label(Label(root,text=‘xxxxx’师倔,font=("微軟雅黑", 12))
photo 設(shè)置背景圖片构韵,事先需要指定圖片路徑 photo=tk.PhotoImage(file='指定圖片路徑')Label(root,text=‘xxxxx’,image=photo)
compound 圖像背景圖位置,可選參數(shù)為:botton疲恢、top凶朗、right、left显拳、center(下棚愤、上、右杂数、左宛畦、文字覆蓋圖像) photo=tk.PhotoImage(file='指定圖片路徑')Label(root,text=‘xxxxx’,image=photo,compound=tk.center)
  • Button:按鈕
參數(shù) 描述 實例
text 按鈕圖標顯示內(nèi)容 Button(root,text='xxxx')
height 組件的高度(所占行數(shù)) Button(root,text='xxxx',height=2)
width 組件的寬度(所占字符個數(shù)) Button(root,text='xxxx',height=2,width=10)
fg 前景字體顏色 Button(text='xxxx',fg='blue')---顯示按鈕字體顏色為藍色
bg 背景字體顏色 Button(text='xxxx',bg='blue')---顯示按鈕字體顏色為藍色
activebackground 按鈕按下時的背景顏色 Button(root,text='xxxx',activebackground='grey')
activeforeground 按鈕按下時的前景字體顏色 Button(root,text='xxxx',activeforeground='black')
justify 多行文本的對齊方式揍移,可選參數(shù)為: LEFT次和、 CENTER、RIGHT那伐,分別是向左踏施、居中、向右對齊 Button(root,text=‘xxxxx’喧锦,justify=tk.LEFT)
padx 文本左右兩側(cè)的空格數(shù)(默認為1) Button(root,text=‘xxxxx’读规,padx=5)
pady 文本上下的空格數(shù)(默認為1) Button(root,text=‘xxxxx’,pady=5)
command 按鈕觸發(fā)執(zhí)行的命令(函數(shù)) Button(root,text='xxxx',command=函數(shù))
  • Entry:輸入框
參數(shù) 描述 實例
width 組件的寬度(所占字符個數(shù)) Entry(root,width=20)
fg 前景字體顏色 Entry(root,fg='blue')
bg 背景字體顏色 Entry(root,bg='blue')
show 將Entry框中的文本替換為指定字符燃少,用于輸入密碼等束亏,如設(shè)置 show="*" Entry(root,show="*")
state 設(shè)置組件狀態(tài),默認為normal阵具,可設(shè)置為:disabled—禁用組件碍遍,readonly—只讀 Entry(root,state=readonly)
textvariable 指定變量,需要事先定義一個變量阳液,在Entry進行綁定獲取變量的值 text=tk.StringVar() Entry(root,textvariable=text)
  • Radiobutton:單選框
參數(shù) 描述 實例
text 單選框文本顯示內(nèi)容 Radiobutton(root,text='xxxx')
variable 單選框索引變量怕敬,通過變量的值確定哪個單選框被選中。一組單選框使用同一個索引變量帘皿,需要事先設(shè)定一個變量 color=tk.StringVar() Radiobutton(root,variable=color)
value 單選框選中時設(shè)定變量的值 color=tk.StringVar()Radiobutton(root,variable=color,value='red'
command 單選框選中時執(zhí)行的命令(函數(shù)) color=tk.StringVar()Radiobutton(root,variable=color,value='red',command=函數(shù))
  • Checkbuttion:復(fù)選框
參數(shù) 描述 實例
text 復(fù)選框顯示的文本 Checkbutton(root,text='xxxx')
variable 復(fù)選框索引變量东跪,通過變量的值確定哪些復(fù)選框被選中。每個復(fù)選框使用不同的變量鹰溜,使復(fù)選框之間相互獨立虽填,事先需要定義不同的變量 typeBlod=tk.IntVar()Checkbutton(root,variable=typeBlod)
onvalue 復(fù)選框選中(有效)時變量的值,可以通過計算值來判斷分支不同的效果曹动,計算值由自己設(shè)定 typeBlod=tk.IntVar()Checkbutton(root,variable=typeBlod,onvalue=1)
offvalue 復(fù)選框未選中(無效)時變量的值斋日,可以通過計算值來判斷分支不同的效果,一般設(shè)置為0 typeBlod=tk.IntVar()Checkbutton(root,variable=typeBlod,onvalue=1,offvalue=0)
command 復(fù)選框選中時執(zhí)行的命令(函數(shù)) typeBlod=tk.IntVar()Checkbutton(root,variable=typeBlod,onvalue=1,offvalue=0墓陈,command=函數(shù))
  • Text:文本框
參數(shù) 描述 實例 備注
t.insert(mark, 內(nèi)容) 插入文本信息恶守,mark可以是行號,或者特殊標識 t=tk.Text()t.insert(END,'插入的文本信息') INSERT:光標 的插入點第献, CURRENT:鼠標的當(dāng)前位置所對應(yīng)的字符 ,END:Textbuffer的最后一個字符兔港,SEL_FIRST:選中文本域的第一個字符庸毫,如果沒有選中區(qū)域則會引發(fā)異常,SEL_LAST:選中文本域的最后一個字符押框,如果沒有選中區(qū)域則會引發(fā)異常
t.delete(mark1, mark2) 刪除文本信息 INSERT:光標的插入點岔绸, CURRENT:鼠標的當(dāng)前位置所對應(yīng)的字符 ,END:Textbuffer的最后一個字符橡伞,SEL_FIRST:選中文本域的第一個字符盒揉,如果沒有選中區(qū)域則會引發(fā)異常,SEL_LAST:選中文本域的最后一個字符兑徘,如果沒有選中區(qū)域則會引發(fā)異常
  • ListBox:列表控件
參數(shù) 描述
master 代表了父窗口
bg 背景色刚盈,如bg=”red”, bg="#FF56EF"
fg 前景色挂脑,如fg=”red”藕漱, fg="#FF56EF"
height 設(shè)置顯示高度、如果未設(shè)置此項崭闲,其大小以適應(yīng)內(nèi)容標簽
width 設(shè)置顯示寬度肋联,如果未設(shè)置此項,其大小以適應(yīng)內(nèi)容標簽
status 設(shè)置組件狀態(tài);正常(normal),激活(active),禁用(disabled)
bd 設(shè)置Button的邊框大小;bd(bordwidth)缺省為1或2個像素
selectmode 選擇模式刁俭,MULTIPLE:多選 BROWSE:通過鼠標的移動選擇 EXTENDED:shift和ctrl配合使用
listvariable 設(shè)置listvariable屬性
relief 指定外觀裝飾邊界附近的標簽,默認是平的,可以設(shè)置的參數(shù):flat橄仍、groove、raised牍戚、ridge侮繁、solid、sunken

常用函數(shù)

函數(shù) 描述
insert 追加item如孝,如listbox.insert(0,"addBox1","addBox2")
delete 刪除item宪哩,如listbox.delete(3,4),刪除全部(0,END)
select_set 選中第晰,如listbox.select_set(0,2)
select_clear 取消選中如listbox.select_clear(0,1)
get 返回制定索引的項值锁孟,如listbox.get(1);返回多個項值,返回元組茁瘦,如listbox.get(0,2)罗岖;返回當(dāng)前選中項的索引listbox.curselection()
curselection() 返回當(dāng)前選中項的索引,如listbox.curselection()
selection_includes 判斷當(dāng)前選中的項目中是否包含某項腹躁,如listbox.selection_includes(4)

消息彈出框

屬性 描述 舉例
showinfo info信息提示,彈出提示框 msgbox.showinfo("INFO","Showinfo test")南蓬,INFO是提示框title纺非,Showinfo test是提示框內(nèi)容
showwarning warning警告信息提示哑了,彈出警告框 框 msgbox.showwarning("WARNING","Warning test"),WARNING是警告框title烧颖,Warning test是警告框內(nèi)容
showerrot error錯誤信息提示弱左,彈出錯誤框 msgbox.showerror("ERROR","Error test"),ERROR是錯誤框title炕淮,Error test是錯誤框內(nèi)容
askquestion 提問窗口提示 msgbox.askquestion("Question","Askquestion test")
askokcancel 確定與取消窗口提示 msgbox.askokcancel("OkCancel","Askokcancel test")
askretrycancel 確定與取消窗口提示 msgbox.askretrycancel("Retry","Askretrycancel test")
askretrycancel 重試與取消窗口提示 msgbox.askretrycancel("Retry","Askretrycancel test")

4.構(gòu)建框架

  • frame:
    內(nèi)嵌框架拆火,可以在一個圖形界面中設(shè)定多個frame框架,也可以在frame再次嵌套frame
frame=tk.Frame(父類框架)
frame.pack()
  • pack屬性:
屬性 描述 備注 其他
fill 設(shè)置組件是否向水平或垂直方向填充涂圆,包含X们镜、Y、BOTH润歉、NONE fill = X(水平方向填充) fill = Y(垂直方向填充)fill = BOTH(水平和垂直)NONE 不填充
expand 設(shè)置組件是否展開模狭,當(dāng)值為YES時,side選項無效踩衩。組件顯示在父容器中心位置嚼鹉;若fill選項為BOTH,則填充父組件的剩余空間。它表示某個控件在fill那個方向驱富,要不要把空白的地方分配給它 YES 锚赤、NO(1、0) 若expand=True或者expand=1褐鸥,表示在fill那個方向线脚,把空白處都分給這個控件,讓它盡量占滿晶疼。若expand=False或者expand=0酒贬,表示在fill那個方向,有空也不給它翠霍。
side 設(shè)置組件的對齊方式 LEFT锭吨、TOP、RIGHT寒匙、BOTTOM 值為左零如、上、右锄弱、下
ipadx考蕾、ipady 設(shè)置x方向(或者y方向)內(nèi)部間隙(子組件之間的間隔),它表示某個控件的內(nèi)邊距会宪,即控件邊緣和這個控件內(nèi)容(文字圖片什么的)的間距 可設(shè)置數(shù)值肖卧,默認是0 非負整數(shù),單位為像素
padx掸鹅、pady 設(shè)置x方向(或者y方向)外部間隙(與之并列的組件之間的間隔)塞帐,它表示某個控件的外邊距拦赠,即控件邊緣和這個控件所在容器之間的間距 可設(shè)置數(shù)值,默認是0 非負整數(shù)葵姥,單位為像素
anchor 錨選項荷鼠,當(dāng)可用空間大于所需求的尺寸時,決定組件被放置于容器的何處榔幸,它表示某個控件在容器里的擺放方式允乐,是左還是右,是上還是下 N削咆、E牍疏、S、W态辛、NW麸澜、NE、SW奏黑、SE炊邦、CENTER(默認值為CENTER) 表示八個方向以及中心
  • grid屬性:
屬性 描述 舉例
row,column 它表示某個控件要放在第幾行網(wǎng)格或第幾列網(wǎng)格,下標都是從0開始計的 xxx.grid(column=1,row=1)
rowspan熟史,columnspan 它表示某個控件將會豎著跨幾行或橫著跨幾列馁害,默認都是1 xxx.grid(column=1,row=1,columnspan=2)xxx.grid(column=1,row=1,rowspan=2)
padx,pady 它表示某個控件的外邊距,即控件邊緣和這個控件所在容器之間的間距蹂匹,單位是像素 xxx.grid(column=1,row=1,padx=10)xxx.grid(column=1,row=1,pady=10)
ipadx,ipady 它表示某個控件的內(nèi)邊距碘菜,即控件邊緣和這個控件內(nèi)容(文字圖片什么的)的間距,單位是像素 xxx.grid(column=1,row=1,ipadx=10)xxx.grid(column=1,row=1,ipady=10)
sticky 它表示某個控件在網(wǎng)格里的擺放方式限寞,是左還是右忍啸,是上還是下,即使窗口被拉大也會按照指定方向?qū)R 若sticky=N履植,表示North计雌,盡可能往北面/上面停靠若sticky=S玫霎,表示South凿滤,盡可能往南面/下面停靠庶近。若sticky=W翁脆,表示W(wǎng)est,盡可能往西邊/左邊捅侵郑靠反番。若sticky=E,表示East,盡可能往東邊/右邊吞窨冢靠校读。若sticky=NS,表示NorthSouth祖能,盡可能往南北方向/上下拉伸。若sticky=EW蛾洛,表示EastWest养铸,盡可能往東西方向/左右拉伸。若sticky=CENTER轧膘,盡可能往中心统靠。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末谎碍,一起剝皮案震驚了整個濱河市鳞滨,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蟆淀,老刑警劉巖拯啦,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異熔任,居然都是意外死亡褒链,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進店門疑苔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來甫匹,“玉大人,你說我怎么就攤上這事惦费”福” “怎么了?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵薪贫,是天一觀的道長恍箭。 經(jīng)常有香客問我,道長后雷,這世上最難降的妖魔是什么季惯? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮臀突,結(jié)果婚禮上勉抓,老公的妹妹穿的比我還像新娘。我一直安慰自己候学,他們只是感情好藕筋,可當(dāng)我...
    茶點故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著梳码,像睡著了一般隐圾。 火紅的嫁衣襯著肌膚如雪伍掀。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天暇藏,我揣著相機與錄音蜜笤,去河邊找鬼。 笑死盐碱,一個胖子當(dāng)著我的面吹牛把兔,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播瓮顽,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼县好,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了暖混?” 一聲冷哼從身側(cè)響起缕贡,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎拣播,沒想到半個月后晾咪,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡诫尽,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年禀酱,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片牧嫉。...
    茶點故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡剂跟,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出酣藻,到底是詐尸還是另有隱情曹洽,我是刑警寧澤,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布辽剧,位于F島的核電站送淆,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏怕轿。R本人自食惡果不足惜偷崩,卻給世界環(huán)境...
    茶點故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望撞羽。 院中可真熱鬧阐斜,春花似錦、人聲如沸诀紊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至笤喳,卻和暖如春为居,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背杀狡。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工蒙畴, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人捣卤。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓忍抽,卻偏偏與公主長得像,于是被迫代替她去往敵國和親董朝。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,713評論 2 354

推薦閱讀更多精彩內(nèi)容