Python GUI編程 -- 內(nèi)置Tkinter庫快速上手

有時候我們想讓編寫的Python程序擁有一個圖形操作界面,而不是只能在命令行中進行操作,這時我們就需要編寫界面。Python有pyqt,wxpython這些庫,而tkinter是Python自帶的可用于GUI編程的庫,當(dāng)我們對界面的要求沒有那么高,想要快速又方便地實現(xiàn)一個簡易的GUI的時候,tkinter這個小巧的庫是一個不錯的選擇。

主體窗口

一下語句實現(xiàn)了一個沒有任何元素的主體窗口:

from tkinter import *

root = Tk()
root.mainloop()

效果如下:


基本窗口

在窗口中添加各種元素

在上面程序的基礎(chǔ)上,在root = Tk()root.mainloop()之間添加下面的代碼以在窗口中添加元素

  • 窗口標(biāo)題:root.wm_title("title_a")
  • 添加窗口圖標(biāo):root.iconbitmap(icon_file),icon_file就是一個.ico的圖標(biāo)文件,使用絕對或相對路徑
  • 設(shè)置窗口大小:root.geometry("x_WIDTHx_HEIGHT"),其中將_WIDTH替換為窗口寬度,將_HEIGHT替換為窗口高度
  • 設(shè)置窗口在屏幕上的位置:root.geometry("+X+Y"),X/Y表示以屏幕左上角為頂點的窗口的坐標(biāo)
  • 添加標(biāo)簽(即不可修改的文本):label1=Label(root,text="this is a label"),定義完了之后,還不會在窗口中顯示,必須加上label1.pack()才行,窗口中各個元素的顯示順序是按執(zhí)行pack的順序,下面的按鈕,輸入框等等都需要進行pack。定義label的時候還可以指定其他屬性,寫成label1=Label(root,text="this is a label",font="16",background="red")這樣就行了
  • 添加按鈕:button1=Button(root,text="confirm",command=func),其中的func表示按下按鈕之后要執(zhí)行的函數(shù),注意這個func是不帶任何參數(shù)的。按鈕還有一個比較常用的屬性是state,分為normalDISABLED,后者顯示出來的按鈕無法按下
  • 輸入框:entry1=Entry(root),如果想在輸入框中預(yù)先添加默認(rèn)的文字,使用entry1.insert(END,"text"),insert的第一個參數(shù)指定了從哪里開始填入text,還可以:entry1.insert(0,"text")

如圖是一個簡單的使用tkinter編寫的GUI界面:


tkinter簡易效果

獲取各個元素的值和屬性

  • 獲取和更改元素的屬性:直接使用屬性名來索引,比如獲取Label的一些屬性:label1["text"],也可以進行修改;也可以使用label1.config(text="text1")來修改屬性
  • 獲取輸入框的文字:entry1.get()

其他有用操作

  • 打開“選擇文件”的對話框:filename = filedialog.askopenfilename();“選擇文件夾”:directory = filedialog.askdirectory()(要先from tkinter import filedialog
  • 設(shè)置右鍵菜單:
menu=Menu(root)
menu.add_command(label="Start",command=start)
root.bind("",popmenu)
def popmenu(event):
  menu.post(event.x_root, event.y_root)
  • 刷新窗口狀態(tài):root.update()
  • 銷毀窗口:root.destroy()
  • 自動觸發(fā)事件:label1.after(sec,command),表示多少秒以后自動執(zhí)行command
  • 單選框:
v = IntVar()  #或  v=StringVar()
r1 = Radiobutton(root,text="",variable=v,value=...)

之后使用v.get()就可以獲得“value”值,就可以判斷哪個單選框被選中了

  • 置頂窗口:root.wm_attributes('-topmost',1)
  • 隱藏窗口外部:root.overrideredirect(True)
  • 運行:可直接將后綴改為.pyw雙擊運行,也可以用pyinstaller用“-w”方法打包之后運行時就不會彈出命令行
?著作權(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)容