[Python教學] Tkinter:基礎入門-初識 GUI 程式設計

[Python教學] Tkinter:基礎入門-初識 GUI 程式設計

更新於 發佈於 閱讀時間約 5 分鐘

嘿,大家好!今天我們要一起踏入 Python 的 GUI(圖形用戶界面)世界,用的就是大名鼎鼎的 Tkinter!別緊張,Tkinter 超簡單、適合新手,而且它還是 Python 內建的,不用額外下載!準備好了嗎?我們即將開始,從零打造一個小視窗,順便聊聊 GUI 程式設計是什麼!


什麼是 Tkinter?為何選它?

簡單來說,Tkinter 是 Python 用來做桌面視窗應用程式的小幫手。想做個計算器、記事本,甚至是個小遊戲?它都能搞定!雖然它看起來有點「老派」(畢竟是基於 Tcl/Tk 的老技術),但它輕量、穩定,關鍵是學起來快,對初學者超友好。

為何選它?

  • 零成本:Python 內建,不用額外安裝。
  • 簡單上手:幾行程式碼就能做出個視窗。
  • 跨平台:Windows、Mac、Linux 通用。

當然啦,如果你想要超炫的界面,可能得看看 PyQt 或者 Kivy,但對新手來說,Tkinter 絕對是最佳起點!


先確認一下環境

Tkinter 通常隨著 Python 一起安裝,但我們還是需要確認一下。打開 Python 終端(或者 IDE 的控制台),輸入:

import tkinter

沒報錯?恭喜你,環境 OK!如果報錯說 ModuleNotFoundError,可能是 Python 安裝有點問題,試試重新安裝 Python。

成功找到模組

成功找到模組


找不到模組錯誤訊息

找不到模組錯誤訊息



第一個程式:產生視窗

好了,廢話不多說,我們直接開始寫程式!來寫個最簡單的視窗:

import tkinter as tk  # 導入 Tkinter,習慣上簡寫成 tk

# 創建主視窗
window = tk.Tk()

# 給視窗取個名字
window.title("我的第一個 Tkinter 視窗")

# 設置視窗大小(寬 x 高)
window.geometry("300x200")

# 進入主循環,讓視窗顯示出來
window.mainloop()

跑一下這段程式碼,一個乾淨的小視窗就蹦出來了!是不是有點成就感?

raw-image


解釋一下這幾行:

  1. tk.Tk():這是 Tkinter 的「起手式」,創建一個主視窗。
  2. title():為視窗設定標題,不然它就叫個無聊的「tk」。
  3. geometry():設置視窗大小,格式是 "寬x高",單位是像素。
  4. mainloop():將視窗開啟並顯示出來,它會一直跑著,等你關視窗才停。


玩一玩:調整視窗

光有個視窗有點單調,我們來對它做一點修改。比如,把視窗移到螢幕左上角,再換個顏色試試:

import tkinter as tk

window = tk.Tk()
window.title("酷炫小視窗")
window.geometry("400x300+100+50") # 寬400 高300,距離左邊100 上邊50
window.configure(bg="lightblue") # 背景改成淺藍色

window.mainloop()

跑跑看!視窗變大了,還跑到左上角,背景也變成淺藍色了。

raw-image


  • +100+50:這是視窗的坐標,距離螢幕左邊 100 像素,上邊 50 像素。
  • configure(bg="lightblue"):bg 是 background 的縮寫,換個顏色讓它有點活力。


小挑戰:動手試試

接下來換各位自己動手試試看,試著寫個自己的視窗,滿足這幾個要求:

  1. 將標題改成你喜歡的名字。
  2. 更改視窗大小。
  3. 背景色改成你喜歡的顏色(比如 "pink"、"green",或者查查其他顏色名)。
  4. 讓視窗出現在螢幕正中間(提示:不加坐標,它會自動居中)。

寫好了跑一下,看看效果,然後可以截圖炫耀一下!


結語

今天我們算是和 Tkinter 有了初步的認識,學會了怎麼產生一個視窗,還能隨手調整它的樣子。是不是沒想像中那麼難?GUI 編程的核心就是這樣:你告訴電腦「我要個視窗,長這樣」,然後它乖乖聽話顯示出來。

下次我們會往視窗裡新增一點東西,比如按鈕、文字等等,讓它更有趣。準備好了嗎?我們下篇見!


avatar-img
追極光的北極熊|軟體工程師的小天地
6會員
116內容數
歡迎來到我的部落格!這裡記錄了軟體工程師的日常生活點滴,並分享程式設計與演算法的實用教學。無論你是初學者還是有經驗的開發者,都能在這裡找到深入淺出的技術解析與實戰技巧。此外,我也會分享工作中的心路歷程與學習心得,讓你不僅學到技術,更能瞭解軟體開發的實際應用與挑戰。希望透過這個平台,能與你共同成長,激發對技術的熱情!
留言
avatar-img
留言分享你的想法!
在現代的軟體開發中,序列化(Serialization)與反序列化(Deserialization)是不可或缺的技術。這些操作廣泛用於資料存儲、網路傳輸以及跨平台的數據交換。Python 提供了多種工具和庫來實現這些功能,例如 pickle、json 和 yaml 等。
使用Python的Pandas和Matplotlib來讀取.csv檔案並進行資料可視化是一個常見的數據分析流程。以下是詳細的教學文章,將使用不同的公開資料集來展示如何繪製折線圖、柱狀圖、散點圖和圓餅圖。
PyCharm 是由 JetBrains 開發的一款功能強大的 Python 集成開發環境(IDE),它提供了許多便捷的功能,讓程式設計師可以更高效地編寫 Python 程式。無論你是 Python 初學者還是經驗豐富的開發者,PyCharm 都能提供優質的開發體驗。
在 Python 的數據處理與科學計算領域,NumPy 是一個不可或缺的基礎工具。它的強大在於提供了高效的多維陣列操作,並支援向量化運算,極大地提升了程式執行效率。本篇文章將詳細介紹 NumPy 的基本概念、功能以及實踐應用,幫助你快速上手這個重要的工具。
以下是針對上一篇文章"[Python教學] Seaborn:高階資料視覺化工具"的課後練習中每個問題的詳細解答,包括程式碼和結果解釋。
Seaborn 是一個基於 Matplotlib 的高階資料視覺化庫,專為統計圖表設計。與 Matplotlib 相比,Seaborn 提供了更簡潔的語法、更美觀的預設樣式,以及與 Pandas 的緊密整合,非常適合用於數據分析和探索性資料分析 (EDA)。
在現代的軟體開發中,序列化(Serialization)與反序列化(Deserialization)是不可或缺的技術。這些操作廣泛用於資料存儲、網路傳輸以及跨平台的數據交換。Python 提供了多種工具和庫來實現這些功能,例如 pickle、json 和 yaml 等。
使用Python的Pandas和Matplotlib來讀取.csv檔案並進行資料可視化是一個常見的數據分析流程。以下是詳細的教學文章,將使用不同的公開資料集來展示如何繪製折線圖、柱狀圖、散點圖和圓餅圖。
PyCharm 是由 JetBrains 開發的一款功能強大的 Python 集成開發環境(IDE),它提供了許多便捷的功能,讓程式設計師可以更高效地編寫 Python 程式。無論你是 Python 初學者還是經驗豐富的開發者,PyCharm 都能提供優質的開發體驗。
在 Python 的數據處理與科學計算領域,NumPy 是一個不可或缺的基礎工具。它的強大在於提供了高效的多維陣列操作,並支援向量化運算,極大地提升了程式執行效率。本篇文章將詳細介紹 NumPy 的基本概念、功能以及實踐應用,幫助你快速上手這個重要的工具。
以下是針對上一篇文章"[Python教學] Seaborn:高階資料視覺化工具"的課後練習中每個問題的詳細解答,包括程式碼和結果解釋。
Seaborn 是一個基於 Matplotlib 的高階資料視覺化庫,專為統計圖表設計。與 Matplotlib 相比,Seaborn 提供了更簡潔的語法、更美觀的預設樣式,以及與 Pandas 的緊密整合,非常適合用於數據分析和探索性資料分析 (EDA)。