上帝為你開了一扇窗之Tkinter常用函數(shù)詳解
第一步:導(dǎo)入模塊,無(wú)需安裝
import tkinter
第二步:實(shí)現(xiàn)一個(gè)窗口
import tkinter tk=tkinter.Tk() tk.mainloop()
這樣,我們應(yīng)該基本的gui窗口就搞定了。接下來(lái),我們給它加點(diǎn)東西,讓它看起來(lái)更加獨(dú)特。
第三步:修改窗口名稱
tk.title("窗口")
第四步:設(shè)置窗口大小
tk.geometry("300x150+700+300")
參數(shù):width x height+x+y,
分別對(duì)應(yīng),窗口 寬,高,以及窗口出現(xiàn)的坐標(biāo),
桌面的坐標(biāo)系:以桌面左上角為(0,0)向右為x軸正半軸,向下為y軸正半軸
設(shè)置固定大小:
tk.minsize(560, 545) # 最小尺寸 tk.maxsize(560, 545) # 最大尺寸
設(shè)置全屏模式:
tk.attributes("-fullscreen", True)#全屏模式:True 全屏;False 正常顯示
注:全屏模式?jīng)]有退出按鈕,關(guān)閉可使用win+D最小化才能關(guān)閉
第五步:獲取當(dāng)前桌面的尺寸
有時(shí)候我們需要獲取到當(dāng)前屏幕的大小,來(lái)決定我們窗口的大小,那就需要獲取當(dāng)前屏幕的寬高,如何獲取呢?
w = tk.winfo_screenwidth()#獲取屏幕寬 h = tk.winfo_screenheight()#獲取屏幕高
第六步:設(shè)置窗口圖標(biāo)
tk.iconbitmap('favicon.ico')#設(shè)置窗口圖標(biāo),將ico放在同級(jí)目錄下。
第七步:設(shè)置窗口背景顏色
tk["background"] ="#7AC5CD"# 采用16色,或者"blue",顏色名稱
這里,我為大家準(zhǔn)備一個(gè)網(wǎng)站,供大家選擇顏色。
https://tool.oschina.net/commons?type=3
第八步:設(shè)置窗口透明度
tk.attributes("-alpha", 0.6)#設(shè)置窗口透明度,透明度的值是:0~1 可以是小數(shù)點(diǎn),0:全透明;1:全不透明
第九步:設(shè)置頂部工具欄樣式
tk.attributes("-toolwindow", True)#有退出,可以移動(dòng)
工具樣式:True 只有退出按鈕,也沒有圖標(biāo); False 正常的窗體樣式
如果要將退出按鈕都隱藏呢?
tk.overrideredirect(True)#無(wú)退出,不能移動(dòng),無(wú)工具欄
第十步:設(shè)置窗口置頂
tk.attributes("-topmost", True) 窗體置頂:True 所有窗口中處于最頂層;False 正常顯示
使用場(chǎng)景,比如:桌面便簽,需要顯示在最頂層,又不妨礙其他軟件使用。
第十一步:獲取tk窗體信息
# 獲取屏幕的大小; height = tk.winfo_height() width = tk.winfo_width() # 獲取窗體的位置 x = tk.winfo_x() y = tk.winfo_y() 通常結(jié)合.update()使用,獲取窗口改變之后的數(shù)據(jù)。 我們可以用bind來(lái)記錄。 tk.bind("", update_test)#綁定事件
def update_test(e): tk.update() # 獲取屏幕的大小; height = tk.winfo_height() width = tk.winfo_width() # 獲取窗體的位置 x = tk.winfo_x() y = tk.winfo_y() print(width, height, x, y) tk.bind("", update_test)
第十二步:添加標(biāo)簽
tkinter.Label(tk,text='標(biāo)簽1(0,0)').grid(column=0,row=0)#column表示x,row表示y
那如何來(lái)理解這個(gè)參數(shù)呢? grid中參數(shù),依然可以把他看做是x,y,當(dāng)兩個(gè)標(biāo)簽中間沒有數(shù)據(jù)時(shí),就會(huì)自然縮進(jìn)。 如圖2,其中沒有2,所以就會(huì)自動(dòng)將2省去。 如圖三中,坐標(biāo)就是確定這些小方格。設(shè)置標(biāo)簽樣式:
tkinter.Label(tk,text='標(biāo)簽1(0,0)',background='red',font=30,).grid(column=0,row=0)#x,y tkinter.Label(tk,text='標(biāo)簽1(1,1)',foreground='red').grid(column=1,row=1)#x,y
background='red'#標(biāo)簽背景顏色 font=30#字體大小 foreground='red'#字體顏色
第十三步:調(diào)用事件
button=Button(tk, text="事件調(diào)用", fg="blue",bd=2,width=8,command=update_test).grid(column=1,row=5)
每點(diǎn)擊一次,就調(diào)用對(duì)應(yīng)的函數(shù)。
第十四步:插入圖片
photo = tkinter.PhotoImage(file="圖片.png")#file:t圖片路徑 imgLabel = tkinter.Label(tk,image=photo).grid(column=1,row=6)#把圖片整合到標(biāo)簽類中
完整代碼
import tkinter from tkinter import * tk=tkinter.Tk() tk.title("窗口")#設(shè)置窗口名稱 tk.geometry("300x150+700+300") """width x height+x+y,分別對(duì)應(yīng),窗口 寬,高,以及窗口出現(xiàn)的坐標(biāo) 桌面的坐標(biāo)系:以桌面左上角為(0,0)向右為x軸正半軸,向下為y軸正半軸""" w = tk.winfo_screenwidth()#獲取屏幕寬 h = tk.winfo_screenheight()#獲取屏幕高 print(w,h) tk.iconbitmap('favicon.ico')#設(shè)置窗口圖標(biāo),將ico放在同級(jí)目錄下。 # 設(shè)置背景色,以“藍(lán)色”為例 tk["background"] ="#7AC5CD"# "blue" tk.attributes("-alpha",1)#設(shè)置窗口透明度,透明度的值是:0~1 可以是小數(shù)點(diǎn),0:全透明;1:全不透明 tk.attributes("-toolwindow", True)#有退出,可以移動(dòng),工具樣式:True 只有退出按鈕,也沒有圖標(biāo); False 正常的窗體樣式 #tk.overrideredirect(True)#無(wú)退出,不能移動(dòng),無(wú)工具欄 #tk.attributes("-fullscreen", True)#全屏模式:True 全屏;False 正常顯示 tk.attributes("-topmost", True)#窗體置頂:True 所有窗口中處于最頂層;False 正常顯示 # 獲取屏幕的大小; height = tk.winfo_height() width = tk.winfo_width() # 獲取窗體的位置 x = tk.winfo_x() y = tk.winfo_y() print(width,height,x,y) def update_test(): tk.update() # 獲取屏幕的大小; height = tk.winfo_height() width = tk.winfo_width() # 獲取窗體的位置 x = tk.winfo_x() y = tk.winfo_y() print(width, height, x, y) # tk.bind("<Configure>", update_test)#綁定事件,窗體的改變事件 tkinter.Label(tk,text='標(biāo)簽1(0,0)',background='red',font=30,).grid(column=0,row=0)#x,y,設(shè)置標(biāo)簽,grid設(shè)置位置 tkinter.Label(tk,text='標(biāo)簽1(1,1)',foreground='red').grid(column=1,row=1)#x,y tkinter.Label(tk,text='標(biāo)簽2').grid(column=4,row=3) tkinter.Label(tk,text='標(biāo)簽3').grid(column=3,row=4) button=Button(tk, text="事件調(diào)用", fg="blue",bd=2,width=8,command=update_test).grid(column=1,row=5)#按鈕,添加按鈕事件 photo = tkinter.PhotoImage(file="Figure_1.png")#file:t圖片路徑 imgLabel = tkinter.Label(tk,image=photo).grid(column=1,row=6)#把圖片整合到標(biāo)簽類中 tk.mainloop()
到此這篇關(guān)于上帝給你開了一個(gè)窗口之Tkinter常用函數(shù)詳解的文章就介紹到這了,更多相關(guān)Tkinter常用函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- python用tkinter開發(fā)的掃雷游戲
- python tkinter Entry控件的焦點(diǎn)移動(dòng)操作
- python3.7.2 tkinter entry框限定輸入數(shù)字的操作
- python使用tkinter實(shí)現(xiàn)透明窗體
- Python基于Tkinter開發(fā)一個(gè)爬取B站直播彈幕的工具
- Python基礎(chǔ)之tkinter圖形化界面學(xué)習(xí)
- Python實(shí)戰(zhàn)之用tkinter庫(kù)做一個(gè)鼠標(biāo)模擬點(diǎn)擊器
- python基于tkinter制作m3u8視頻下載工具
- Python中tkinter的用戶登錄管理的實(shí)現(xiàn)
- python tkinter實(shí)現(xiàn)定時(shí)關(guān)機(jī)
相關(guān)文章
Python-typing: 類型標(biāo)注與支持 Any類型詳解
這篇文章主要介紹了Python-typing: 類型標(biāo)注與支持 Any類型詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-05-05詳談Python 窗體(tkinter)表格數(shù)據(jù)(Treeview)
今天小編就為大家分享一篇詳談Python 窗體(tkinter)表格數(shù)據(jù)(Treeview),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-10-10Python3實(shí)現(xiàn)的反轉(zhuǎn)單鏈表算法示例
這篇文章主要介紹了Python3實(shí)現(xiàn)的反轉(zhuǎn)單鏈表算法,結(jié)合實(shí)例形式總結(jié)分析了Python基于迭代算法與遞歸算法實(shí)現(xiàn)的翻轉(zhuǎn)單鏈表相關(guān)操作技巧,需要的朋友可以參考下2019-03-03python實(shí)現(xiàn)Excel文件轉(zhuǎn)換為TXT文件
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)Excel文件轉(zhuǎn)換為TXT文件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-04-04Python3實(shí)現(xiàn)將一維數(shù)組按標(biāo)準(zhǔn)長(zhǎng)度分隔為二維數(shù)組
今天小編就為大家分享一篇Python3實(shí)現(xiàn)將一維數(shù)組按標(biāo)準(zhǔn)長(zhǎng)度分隔為二維數(shù)組,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-11-11Django結(jié)合ajax進(jìn)行頁(yè)面實(shí)時(shí)更新的例子
今天小編就為大家分享一篇Django結(jié)合ajax進(jìn)行頁(yè)面實(shí)時(shí)更新的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-08-08