從零開始學Python (22) — 圖形化使用者介面Tkinter:直到現在,我還默默的等待

Day 22 圖形化使用者介面Tkinter:直到現在,我還默默的等待

Chih-Yu Lin

--

註:本篇文章同步刊載於iT邦幫忙,為鐵人賽之系列文章。
https://ithelp.ithome.com.tw/articles/10247294

上次的練習我們就不驗收了,相信大家應該可以做得好的XD!
今天我們來聊聊Python的圖形化使用者介面。
如果讀者手上有一些Python的入門書,
相信在這個單元之前,常常會看到一個烏龜的範例(Turtle模組),
那就是一種會顯示圖形化的介面其中一種。
通常我們會將有圖形化的互動介面稱為GUI(Graphical User Interface)介面,
在Python當中如果算上其他的GUI介面的話,
其實相當多種,最常見的有Tkinter/PyQT/WxPython/Kivy等,
如果就一般人而言,沒有特殊需求的話,
使用內建的Tkinter模組作為開頭應該就很足夠囉!

每個tkinter的主體會先由tkinter.Tk()的物件生成,
通常讀者們應該會看到大部分的範例會將tkinter縮寫成tk
並將生成的物件命名為window或win(代表這個視窗介面),
後續的操作也都跟其息息相關。

>>> import tkinter as tk
>>> win = tk.Tk() # 如果使用直譯器的話,在這行Enter後就會先看到一個視窗了!
>>> win.title('從零開始學Python:第二件X折?') # 更改視窗的標題
''
>>> win.geometry('800x400') # 修改視窗大小(寬x高)
''
>>> win.resizable(False, False) # 如果不想讓使用者能調整視窗大小的話就均設為False
''
>>> win.iconbitmap('unicorn.ico') # 更改左上角的icon圖示
''
>>> win.mainloop() # 在一般python xxx.py的執行方式中,呼叫mainloop()才算正式啟動

(註:下面的操作我們都先在直譯器中嘗試,請先不要下mainloop()以免無法再輸入指令)
我們在上面的示範中使用了一個icon檔,是一隻打瞌睡的獨角獸:
https://www.flaticon.com/free-icon/unicorn_3468081
但下載下來的時候是png檔,而使用圖示只會接受icon bitmap的格式,
使用者可以利用上一篇教的PIL來進行轉換:

--

--

Chih-Yu Lin

LeetCode、Python、Java、Android;第11屆iT邦幫忙鐵人賽Software Development組優選(從LeetCode學演算法);HiSKIO特約講師;課程優惠: https://bit.ly/lc2022all ;合作請洽: learnwithdesolve@gmail.com