1. Widget "標籤" (Label
)
今天我們繼續認識這個很棒的工具,主要聊一聊標籤 (Label
) 和文字欄位 (Text
)。
是的,這正是幫助你讓應用程式不僅能完成複雜任務,還能通過短訊息或大塊文字與使用者分享這些驚人的成果。
在我們深入了解文字欄位之前,先從比較簡單的——標籤開始。 Tkinter 的標籤是一種小巧而實用的 widget,可以用來顯示靜態資訊。 幾乎像是冰箱上的便利貼,只是它出現在你的應用程式裡。可以用來做標題、描述,甚至是一些金句名言。
建立與設計標籤
在 Tkinter 中建立一個標籤簡單到就像第一次學程式語言的語法一樣(還記得那有多痛苦嗎?)。以下是使用標籤的程式碼範例:
import tkinter as tk
# 建立主視窗
root = tk.Tk()
root.title("我的第一個標籤")
# 建立標籤
label = tk.Label(root, text="你好,世界!", font=("Arial", 14))
label.pack()
# 啟動主事件迴圈
root.mainloop()
在這裡我們建立了一個標籤,它顯示「你好,世界!」。 如你所見,可以設定字型與文字大小,非常靈活。你可以自由選擇樣式、大小,甚至文字的顏色,讓它符合你的設計理念。
2. Widget "文字欄位" (Text)
現在我們已經認識了標籤,接下來跨進另一個層次,來聊一聊文字欄位。
文字欄位 (Text
) 是像嵌入你應用程式裡的一個筆記本。
它可以顯示並編輯大量文字。如果需要讓使用者與大量文字互動,或者只是想展現自己在週末寫了多少程式碼,那它就是你的好幫手。
使用文字欄位
以下是建立文字欄位並填入一些文字的範例:
import tkinter as tk
# 建立主視窗
root = tk.Tk()
root.title("文字欄位")
# 建立文字欄位
text = tk.Text(root, height=10, width=40)
text.pack()
# 填入一些文字
text.insert(tk.END, "很久以前,在遙遠的星系中...\n")
text.insert(tk.END, "在這裡輸入你的文字...")
# 啟動主事件迴圈
root.mainloop()
如範例所示,可以使用 insert
方法將文字插入文字欄位中。
參數 tk.END
指定文字應插在當前文字的末尾。
設定字型與文字樣式
對於標籤和文字欄位,都可以設定文字樣式,包括字型、大小、顏色等。 以下是如何為標籤與文字欄位設定樣式的範例:
label = tk.Label(root, text="你好,世界!", font=("Courier", 16, "bold"), fg="blue")
label.pack()
text.tag_configure("highlight", font=("Verdana", 12), foreground="red")
text.insert(tk.END, "這段文字會被突出顯示", "highlight")
在這裡我們更改了標籤中文字的字型和顏色,並使用了標籤 (tag) 來突出顯示文字欄位中的部分文字。
注意 tag_configure
的使用:它允許我們定義一個「標籤」,然後將它應用於文字的某個部分。
這是一個強大的工具,可以幫助你管理文字欄位中特定部分的樣式。
3. 整合到程式中
現在我們已經知道如何建立與設計標籤和文字欄位,接下來看一個應用範例。 假設我們想建立一個簡單的文字編輯器,這個編輯器可以顯示並編輯文字檔案。
import tkinter as tk
from tkinter import filedialog
# 開啟檔案的函式
def open_file():
file_path = filedialog.askopenfilename()
if file_path:
with open(file_path, 'r') as file:
content = file.read()
text.delete(1.0, tk.END)
text.insert(tk.END, content)
# 建立主視窗
root = tk.Tk()
root.title("文字編輯器")
# 建立 widgets
label = tk.Label(root, text="文字編輯器", font=("Arial", 16))
label.pack()
text = tk.Text(root, wrap='word', font=("Arial", 12))
text.pack(expand=1, fill='both')
open_button = tk.Button(root, text="開啟檔案", command=open_file)
open_button.pack()
# 啟動主事件迴圈
root.mainloop()
在這個範例中,我們建立了一個簡單的應用程式,可以讓使用者開啟文字檔案並在文字欄位中檢視其內容。
使用 Button
widget,我們將開啟檔案的指令綁定到函式 open_file
,
它使用 filedialog
選擇檔案。這比單純展示「Hello World」有趣多了,不是嗎?
4. 處理文字變更
當你處理文字時,可能需要對變更做出反應:無論是將文字輸出到控制台(或檔案)還是更新介面的其他部分。 Tkinter 提供了各種方法來追蹤文字的變更。
不過,如果你想實現一些更專業的功能,例如尋找文字或根據條件替換文字,
你需要自己寫相關的函式。初步你可以使用 get()
和 delete()
方法來提取與修改 widget 中的文字。
所以,現在你擁有所有工具來建立一個小型應用程式, 它不僅顯示資訊,還可以與使用者互動。 希望今天的標籤與文字欄位課程不僅實用,還非常有趣! 下次當你在應用程式中見到文字欄位時,你會知道它很可能是用 Tkinter 製作的,而標籤也不僅是一段文字,而是一種與使用者互動的哲學。
GO TO FULL VERSION