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

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

嘿,大家好!今天我們要一起踏入 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
留言分享你的想法!
在現代的軟體開發中,序列化(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)。
你可能也想看
Google News 追蹤
Thumbnail
全新 vocus 挑戰活動「方格人氣王」來啦~四大挑戰任你選,留言 / 愛心 / 瀏覽數大 PK,還有新手專屬挑戰!無論你是 vocus 上活躍創作者或剛加入的新手,都有機會被更多人看見,獲得站上版位曝光&豐富獎勵!🏆
上兩篇有關List的文章,此篇文上兩章的延續,整理一些常用的方法和操作。 [Python]List(列表)新增、修改、刪除元素 [Python基礎]容器 list(列表),tuple(元組) 還有一些常用的 list 方法和操作,讓你能更靈活地處理列表數據
Thumbnail
打開 jupyter notebook 寫一段 python 程式,可以完成五花八門的工作,這是玩程式最簡便的方式,其中可以獲得很多快樂,在現今這種資訊發達的時代,幾乎沒有門檻,只要願意,人人可享用。 下一步,希望程式可以隨時待命聽我吩咐,不想每次都要開電腦,啟動開發環境,只為完成一個重複性高
Thumbnail
本文利用pyqt5,使用pyttsx3將QLineEdit(單行輸入框)的字串,轉成語音呈現出來。
在一次五天的年假中,我決定開始學習Python編程。雖然最初進展順利,但後來發現自己在解題和邏輯方面遇到了困難。經過思考後,我決定轉而學習C/C++,並且制定了一個計畫,希望成為一名後端工程師。這將需要挑戰我的時間管理能力。
Thumbnail
什麼是Python python是電腦程式語言的一種,如同python官方網站上的介紹 "Python是一種程式語,可讓你更快速地工作並更有效的整合系統"。簡單地說,就是你可用python這個程式語言去告訴電腦你想要作什麼,讓電腦來幫你完成你要作的事情。
Thumbnail
Python是一種易學且功能強大的程式語言,具有直譯、動態語法等特性,並擁有豐富的標準庫。它在各領域如Web開發、數據科學和人工智慧等得到廣泛應用,並被許多大公司如Google和Facebook等使用。Python還有強大的框架、豐富的交互機能、和龐大的社區。
Thumbnail
今天來介紹python的函式 函式在python中是非常重要的一環,因為到了後期,程式會越來越複雜。 而函式可以想成是容易管理的小程式,當我們需要使用時,只需呼叫即可。
Thumbnail
本文詳細解說了 Python print() 函數的各種隱藏語法,包括 value、sep、end、file 和 flush。作者以清晰的範例和解說,讓從未接觸程式語言的人也能夠理解。而最後提到了訂閱房間的付費方式,並歡迎大家訂閱。文章內容較為詳細,提供了豐富的資訊。
想要開始Python語言的開發環境,有兩種常見方式,一種是下載安裝到本機端,另一種是直接在雲端執行。本文將介紹三個常見的開發工具及其安裝步驟。
Thumbnail
本篇文章將教你如何使用Python和PyQt5來建立一個GUI應用程式。PyQt5是一個相當流行的Python模組,透過這個文章你將學習如何使用它來建立一個互動式的應用程式。
Thumbnail
全新 vocus 挑戰活動「方格人氣王」來啦~四大挑戰任你選,留言 / 愛心 / 瀏覽數大 PK,還有新手專屬挑戰!無論你是 vocus 上活躍創作者或剛加入的新手,都有機會被更多人看見,獲得站上版位曝光&豐富獎勵!🏆
上兩篇有關List的文章,此篇文上兩章的延續,整理一些常用的方法和操作。 [Python]List(列表)新增、修改、刪除元素 [Python基礎]容器 list(列表),tuple(元組) 還有一些常用的 list 方法和操作,讓你能更靈活地處理列表數據
Thumbnail
打開 jupyter notebook 寫一段 python 程式,可以完成五花八門的工作,這是玩程式最簡便的方式,其中可以獲得很多快樂,在現今這種資訊發達的時代,幾乎沒有門檻,只要願意,人人可享用。 下一步,希望程式可以隨時待命聽我吩咐,不想每次都要開電腦,啟動開發環境,只為完成一個重複性高
Thumbnail
本文利用pyqt5,使用pyttsx3將QLineEdit(單行輸入框)的字串,轉成語音呈現出來。
在一次五天的年假中,我決定開始學習Python編程。雖然最初進展順利,但後來發現自己在解題和邏輯方面遇到了困難。經過思考後,我決定轉而學習C/C++,並且制定了一個計畫,希望成為一名後端工程師。這將需要挑戰我的時間管理能力。
Thumbnail
什麼是Python python是電腦程式語言的一種,如同python官方網站上的介紹 "Python是一種程式語,可讓你更快速地工作並更有效的整合系統"。簡單地說,就是你可用python這個程式語言去告訴電腦你想要作什麼,讓電腦來幫你完成你要作的事情。
Thumbnail
Python是一種易學且功能強大的程式語言,具有直譯、動態語法等特性,並擁有豐富的標準庫。它在各領域如Web開發、數據科學和人工智慧等得到廣泛應用,並被許多大公司如Google和Facebook等使用。Python還有強大的框架、豐富的交互機能、和龐大的社區。
Thumbnail
今天來介紹python的函式 函式在python中是非常重要的一環,因為到了後期,程式會越來越複雜。 而函式可以想成是容易管理的小程式,當我們需要使用時,只需呼叫即可。
Thumbnail
本文詳細解說了 Python print() 函數的各種隱藏語法,包括 value、sep、end、file 和 flush。作者以清晰的範例和解說,讓從未接觸程式語言的人也能夠理解。而最後提到了訂閱房間的付費方式,並歡迎大家訂閱。文章內容較為詳細,提供了豐富的資訊。
想要開始Python語言的開發環境,有兩種常見方式,一種是下載安裝到本機端,另一種是直接在雲端執行。本文將介紹三個常見的開發工具及其安裝步驟。
Thumbnail
本篇文章將教你如何使用Python和PyQt5來建立一個GUI應用程式。PyQt5是一個相當流行的Python模組,透過這個文章你將學習如何使用它來建立一個互動式的應用程式。