CodeGym /Java Adesua /Python SELF TW /處理標籤與文字欄位

處理標籤與文字欄位

Python SELF TW
等級 49 , 課堂 3
開放

1. Widget "標籤" (Label)

今天我們繼續認識這個很棒的工具,主要聊一聊標籤 (Label) 和文字欄位 (Text)。 是的,這正是幫助你讓應用程式不僅能完成複雜任務,還能通過短訊息或大塊文字與使用者分享這些驚人的成果。

在我們深入了解文字欄位之前,先從比較簡單的——標籤開始。 Tkinter 的標籤是一種小巧而實用的 widget,可以用來顯示靜態資訊。 幾乎像是冰箱上的便利貼,只是它出現在你的應用程式裡。可以用來做標題、描述,甚至是一些金句名言。

建立與設計標籤

在 Tkinter 中建立一個標籤簡單到就像第一次學程式語言的語法一樣(還記得那有多痛苦嗎?)。以下是使用標籤的程式碼範例:

Python

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) 是像嵌入你應用程式裡的一個筆記本。 它可以顯示並編輯大量文字。如果需要讓使用者與大量文字互動,或者只是想展現自己在週末寫了多少程式碼,那它就是你的好幫手。

使用文字欄位

以下是建立文字欄位並填入一些文字的範例:

Python

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 指定文字應插在當前文字的末尾。

設定字型與文字樣式

對於標籤和文字欄位,都可以設定文字樣式,包括字型、大小、顏色等。 以下是如何為標籤與文字欄位設定樣式的範例:

Python

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. 整合到程式中

現在我們已經知道如何建立與設計標籤和文字欄位,接下來看一個應用範例。 假設我們想建立一個簡單的文字編輯器,這個編輯器可以顯示並編輯文字檔案。

Python

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 製作的,而標籤也不僅是一段文字,而是一種與使用者互動的哲學。

留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION