Python Tkinter圖形工具使用方法及實例解析
Tkinter 常用組件
按鈕
Button 按鈕組件 RadioButton 單選框組件 CheckButton 選擇按鈕組件 Listbox 列表框組件文本輸組件
Entry 單行文本框組件 Text 多行文本框組件標(biāo)簽組件
Label 標(biāo)簽組件,可以顯示圖片和文字 Message 標(biāo)簽組件, 可以根據(jù)內(nèi)容將文字換行菜單
Menu 菜單組件 MenuButton 菜單按鈕組件,可以實用Menu代替滾動條
Scale 滑動組件 Scrollbar 滾動條組件其他組件 Canvas 畫布組件
Frame 框架組件,將多個組件編組 Toplevel 創(chuàng)建子窗口容器組件組件的大致實用步驟創(chuàng)建總面板創(chuàng)建面板上各種組件
1.指定組件的父組件,即依附關(guān)系
2.利用相應(yīng)的屬性對組件進(jìn)行設(shè)置
3.給組件安排布局最后啟動總面板的消息循環(huán)組件布局
控制組件的擺放方式
三種布局:
pack: 按照方位布局 place: 按照坐標(biāo)布局 grid: 網(wǎng)格布局pack布局
最簡單,代碼量最少,挨個擺放,默認(rèn)從上到下,系統(tǒng)自動設(shè)置 通用實用方式為:組件對象.pack(設(shè)置......) side:停靠方位,可選值為LEFT,TOP,RIGHT,BOTTOM fill:填充方式,x,y,BOTH,NONE expande:YES/NO 擴(kuò)充 anchor:N,E,S,W,CENTER ipadx:x方向的內(nèi)邊距 ipady:y padx:x的外方向邊界 pady:ygrid布局
通用使用方式:組件對象.grid(設(shè)置......) 利用row,cblumn編號,都是從0開始 sticky:N,E,S,W表示上下左右,用來決定組件從哪個方向開始 支持ipadx,padx等參數(shù),跟pack函數(shù)一樣 支持rowspan,columnspan,代表跨行,跨列數(shù)列place布局:
明確方位的擺放 相對位置布局,隨意改變窗口大小會導(dǎo)致混亂 使用place函數(shù),分為絕對布局和相對布局,絕對布局使用X,Y參數(shù) 相對布局使用relx,rely,relheight,relwidth案例1:創(chuàng)建一個自己定義的彈窗、并且里面有文字內(nèi)容
執(zhí)行完成就會彈出一個白色定義好的小方框,里面的內(nèi)容就是你定義的
import tkinterbase = tkinter.Tk()# 創(chuàng)建總面板# 負(fù)責(zé)標(biāo)題base.wm_title('Label Test') # 創(chuàng)建面板的標(biāo)題lb = tkinter.Label(base, text='Pyhton Label') # 創(chuàng)建一些內(nèi)容,把創(chuàng)建的內(nèi)容指定給我之前創(chuàng)建好的名為base的面板,Pyhton Label為面板的內(nèi)容# 給相應(yīng)組件指定布局 lb.pack() # 給相應(yīng)組件指定布局base.mainloop() # 啟動總面板的消息循環(huán)(大致意思了解為啟動這個面板)
案例2:Button案例,創(chuàng)建一個彈窗,里面生成一個按鈕,當(dāng)按鈕被按下去的時候,執(zhí)行我定義的函數(shù)
import tkinterdef showlabel(): global baseFrame # 調(diào)用全局變量,baseFrame,也可以把baseFrame = tkinter.Tk() 放到函數(shù)上面 lb = tkinter.Label(baseFrame, text='我是函數(shù)里面的內(nèi)容') lb.pack()if __name__ == ’__main__’: baseFrame = tkinter.Tk () btn = tkinter.Button(baseFrame, text='點擊我、就會執(zhí)行函數(shù)', command=showlabel) # command為指定要執(zhí)行的函數(shù),不填默認(rèn)不執(zhí)行 btn.pack() baseFrame.mainloop()
執(zhí)行結(jié)果如下:
pack布局
最簡單,代碼量最少,挨個擺放,默認(rèn)從上到下,系統(tǒng)自動設(shè)置 通用實用方式為:組件對象.pack(設(shè)置......) side:停靠方位,可選值為LEFT,TOP,RIGHT,BOTTOM fill:填充方式,x,y,BOTH,NONE expande:YES/NO 擴(kuò)充 anchor:N,E,S,W,CENTER ipadx:x方向的內(nèi)邊距 ipady:y padx:x的外方向邊界 pady:y案例3:pack 布局案例
# pack 布局案例import tkinterdef button1(): # 函數(shù)內(nèi)所有代碼都是創(chuàng)建一個組件,然后布局 global baseFreame btn1 = tkinter.Button(baseFreame, text=’A’) btn1.pack(side=tkinter.LEFT, expand=tkinter.YES, fill=tkinter.Y) btn2 = tkinter.Button(baseFreame, text=’B’) btn2.pack(side=tkinter.TOP, expand=tkinter.YES, fill=tkinter.BOTH) btn3 = tkinter.Button(baseFreame, text=’C’) btn3.pack(side=tkinter.RIGHT, expand=tkinter.YES, fill=tkinter.NONE, anchor=tkinter.NE) btn4 = tkinter.Button(baseFreame, text=’D’) btn4.pack(side=tkinter.LEFT, expand=tkinter.NO, fill=tkinter.Y) btn5 = tkinter.Button(baseFreame, text=’E’) btn5.pack(side=tkinter.TOP, expand=tkinter.NO, fill=tkinter.BOTH) btn6 = tkinter.Button(baseFreame, text=’F’) btn6.pack(side=tkinter.BOTTOM, expand=tkinter.YES) btn7 = tkinter.Button(baseFreame, text=’G’) btn7.pack(anchor=tkinter.SE)if __name__ == ’__main__’: baseFreame = tkinter.Tk() button1 () baseFreame.mainloop()
執(zhí)行結(jié)果如下:
grid布局
通用使用方式:組件對象.grid(設(shè)置......) 利用row,cblumn編號,都是從0開始 sticky:N,E,S,W表示上下左右,用來決定組件從哪個方向開始 支持ipadx,padx等參數(shù),跟pack函數(shù)一樣 支持rowspan,columnspan,代表跨行,跨列數(shù)列案例3:grid布局案例
import tkinterdef button1(): # 函數(shù)內(nèi)所有代碼都是創(chuàng)建一個組件,然后布局 global baseFreame btn1 = tkinter.Label(baseFreame, text=’賬戶:’) btn1.grid(row=0, sticky=tkinter.W) en = tkinter.Entry(baseFreame) en.grid(row=0, column=1, sticky=tkinter.E) btn2 = tkinter.Label(baseFreame, text=’密碼:’) btn2.grid(row=1, sticky=tkinter.W) en2 = tkinter.Entry(baseFreame) en2.grid(row=1, column=1, sticky=tkinter.E) btn2 = tkinter.Button(baseFreame, text=’登陸’) btn2.grid(row=2, column=1, sticky=tkinter.W)if __name__ == ’__main__’: baseFreame = tkinter.Tk() button1() baseFreame.mainloop()
執(zhí)行結(jié)果如下:
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. IntelliJ IDEA設(shè)置默認(rèn)瀏覽器的方法2. Python 的 __str__ 和 __repr__ 方法對比3. IntelliJ IDEA設(shè)置背景圖片的方法步驟4. Spring security 自定義過濾器實現(xiàn)Json參數(shù)傳遞并兼容表單參數(shù)(實例代碼)5. JAMon(Java Application Monitor)備忘記6. 學(xué)python最電腦配置有要求么7. 解決redis與Python交互取出來的是bytes類型的問題8. Python TestSuite生成測試報告過程解析9. Python Scrapy多頁數(shù)據(jù)爬取實現(xiàn)過程解析10. Python OpenCV去除字母后面的雜線操作
