將列表列印到 Tkinter Text 控制元件


在使用 Tkinter 在 Python 中建立圖形使用者介面 (GUI) 時,通常希望以使用者友好的格式顯示資料。一種方法是將專案列表列印到 Tkinter Text 控制元件,該控制元件允許您顯示列表,每個專案位於單獨的行上。在本文中,我們將介紹如何將列表列印到 Tkinter Text 控制元件以及一些格式化輸出的技巧。

建立 Tkinter Text 控制元件

在將列表列印到 Tkinter Text 控制元件之前,我們需要建立該控制元件本身。以下是一些建立簡單 Text 控制元件的示例程式碼:

from tkinter import *

root = Tk()
root.geometry("720x250")
root.title("Creating a Tkinter Text Widget")

txt_output = Text(root, height=5, width=30)
txt_output.pack(pady=30)

root.mainloop()

輸出

執行此程式碼時,您將看到如下所示的空白 Text 控制元件,它有足夠的空間顯示 5 行文字,每行最大寬度為 30 個字元。

將列表列印到 Tkinter Text 控制元件

擁有 Text 控制元件後,我們可以將專案列表列印到其中。最簡單的方法是使用 for 迴圈遍歷列表,並使用 Text 控制元件的 **insert()** 方法將每個專案新增到新行。以下是將水果名稱列表列印到 Text 控制元件的示例程式碼:

from tkinter import *

root = Tk()
root.geometry("720x250")
root.title("Printing a List to the Tkinter Text Widget")

my_list = ["apple", "banana", "pineapple", "mango"]

txt_output = Text(root, height=5, width=30)
txt_output.pack(pady=30)

for item in my_list:
    txt_output.insert(END, item + "\n")

root.mainloop()

輸出

執行此程式碼後,Text 控制元件將顯示四個水果名稱,每個名稱位於單獨的行上:

格式化輸出

將列表列印到 Tkinter Text 控制元件是一項簡單的任務,但您可以透過多種方式格式化輸出以使其更具視覺吸引力。

向列表新增標題或標題

如果您要列印的專案列表具有特定的含義或用途,您可能希望向 Text 控制元件新增標題或標題,以便使用者清楚地瞭解其含義。您可以使用 insert() 方法在列表本身之前向控制元件頂部新增一行文字。以下是一個示例:

from tkinter import *

root = Tk()
root.geometry("720x250")
root.title("Adding a Title or Heading to the List")

my_list = ["apple", "banana", "pineapple", "mango"]

txt_output = Text(root, height=6, width=30)
txt_output.pack(pady=30)

txt_output.insert(END, "List of Fruits\n")
for item in my_list:
   txt_output.insert(END, item + "\n")

root.mainloop()

輸出

現在看看 **輸出** 視窗:

使用格式區分專案

有時,以一種使區分列表中專案更容易的方式格式化輸出非常有用。一種方法是使用不同的文字樣式(例如粗體或斜體)來突出顯示某些單詞或短語。

在此示例中,我們使用“*”字元在單詞“banana”前面新增一個專案符號,並使用自定義粗體標籤對其進行格式化。我們在程式碼底部使用 tag_configure() 方法定義標籤,該方法指定字型樣式和粗細。

from tkinter import *

root = Tk()
root.geometry("720x250")
root.title("Use Formatting to Distinguish Between Items")

my_list = ["apple", "banana", "pineapple", "mango"]

txt_output = Text(root, height=6, width=30)
txt_output.pack(pady=30)

txt_output.insert(END, "List of Fruits\n\n")
for item in my_list:
   if item == "banana":
      txt_output.insert(END, "* " + item + "\n", "bold")
   else:
      txt_output.insert(END, "- " + item + "\n")

txt_output.tag_configure("bold", font=("Arial", 10, "bold"))
root.mainloop()

輸出

執行後,您將獲得以下 **輸出** 視窗:

使用縮排顯示層次結構

如果您的列表具有層次結構,您可能希望使用縮排來說明哪些專案從屬於其他專案。您可以透過在應縮排的每個專案前面新增空格或製表符來實現此目的。

在此示例中,我們建立了一個列表,其中包含兩個主要類別(水果和蔬菜),每個類別下有三個專案。我們在應縮排的每個專案前面新增兩個空格,這使得清楚哪些專案屬於每個類別。

from tkinter import *

root = Tk()
root.geometry("720x200")
root.title("Use Indentation to Show Hierarchy")

my_list = ["fruits",
   "  - apple", "  - banana", "  - pineapple",
   "vegetables",
   "  - cabbage", "  - tomato", "  - onion"]

txt_output = Text(root, height=8, width=30)
txt_output.pack(pady=30)

for item in my_list:
   txt_output.insert(END, item + "\n")

root.mainloop()

輸出

執行後,您將看到以下輸出視窗:

結論

總之,將列表列印到 Tkinter Text 控制元件是一項簡單的任務,可用於以使用者友好的格式顯示資料。透過使用 **insert()** 方法和 for 迴圈,您可以將列表中的每個專案列印到單獨的行上。使用一些額外的格式化技術,例如新增標題、使用不同的文字樣式或使用縮排,您可以使輸出更具視覺吸引力,並且更容易理解。

更新於:2023年4月13日

8K+ 瀏覽量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.