如何使用 Tkinter 的 grid 函式顯示不同的影像?


Python 的 tkinter 庫是一個功能強大且用途廣泛的工具,用於建立圖形使用者介面 (GUI)。它的主要功能之一是能夠顯示影像,而 grid 函式是組織和以網格格式顯示多個影像的好方法。在本文中,我們將探討如何使用 tkinter 的 grid 函式來顯示不同的影像。

步驟 1:匯入必要的庫

首先,我們需要匯入 tkinter 和 PIL(Python 影像庫)庫。PIL 用於在 Python 中載入和處理影像檔案。

import tkinter as tk
from PIL import ImageTk, Image

步驟 2:建立 Tkinter 視窗

接下來,我們將建立一個 tkinter 視窗來顯示影像。我們將設定視窗的大小併為其命名。

root = tk.Tk()
root.geometry("720x500")
root.title("Display Images using Grid Function")

步驟 3:載入影像

現在,我們需要載入我們想要在網格中顯示的影像。我們將使用 PIL 的 ImageTk 模組來載入影像並將其轉換為 tkinter 可以顯示的格式。

image1 = Image.open(r"C:\Users\Leekha\Desktop\images\Monkey.jpg")
image1 = image1.resize((240, 240))
image1 = ImageTk.PhotoImage(image1)

image2 = Image.open(r"C:\Users\Leekha\Desktop\images\Panda.jpg")
image2 = image2.resize((240, 240))
image2 = ImageTk.PhotoImage(image2)

image3 = Image.open(r"C:\Users\Leekha\Desktop\images\Elephant.jpg")
image3 = image3.resize((240, 240))
image3 = ImageTk.PhotoImage(image3)

image4 = Image.open(r"C:\Users\Leekha\Desktop\images\Lion.jpg")
image4 = image4.resize((240, 240))
image4 = ImageTk.PhotoImage(image4)

在這個例子中,我們載入了四個名為 Monkey.jpg、Panda.jpg、Elephant.jpg 和 Lion.jpg 的影像。我們還將影像調整為 240 畫素的寬度和高度,以確保它們都具有相同的大小。

步驟 4:為影像建立標籤

接下來,我們將為每個影像建立一個標籤。標籤用於在 tkinter 視窗中顯示文字或影像。

label1 = tk.Label(image=image1)
label2 = tk.Label(image=image2)
label3 = tk.Label(image=image3)
label4 = tk.Label(image=image4)

我們正在建立四個標籤,每個影像一個,並將每個標籤的 image 引數設定為我們在上一步中載入的相應影像。

步驟 5:使用 Grid 函式顯示標籤

最後,我們將使用 grid 函式以網格格式顯示標籤。grid 函式用於以表格結構(帶有行和列)組織部件。

label1.grid(row=0, column=0)
label2.grid(row=0, column=1)
label3.grid(row=1, column=0)
label4.grid(row=1, column=1)

在這個例子中,我們使用 grid 函式在 2x2 網格中顯示標籤。第一個標籤 (label1) 放在第 0 行,第 0 列,第二個標籤 (label2) 放在第 0 行,第 1 列,第三個標籤 (label3) 放在第 1 行,第 0 列,第四個標籤 (label4) 放在第 1 行,第 1 列。

步驟 6:執行程式

我們現在可以執行程式並檢視 tkinter 視窗中顯示的影像。

root.mainloop()

這行程式碼用於啟動 tkinter 事件迴圈,並使視窗保持開啟狀態並對使用者互動做出響應。

示例

讓我們看看完整的程式碼及其輸出 -

import tkinter as tk
from PIL import ImageTk, Image
root = tk.Tk()
root.geometry("720x500")
root.title("Display Images using Grid Function")
image1 = Image.open(r"C:\Users\Leekha\Desktop\images\Monkey.jpg")
image1 = image1.resize((240, 240))
image1 = ImageTk.PhotoImage(image1)

image2 = Image.open(r"C:\Users\Leekha\Desktop\images\Panda.jpg")
image2 = image2.resize((240, 240))
image2 = ImageTk.PhotoImage(image2)

image3 = Image.open(r"C:\Users\Leekha\Desktop\images\Elephant.jpg")
image3 = image3.resize((240, 240))
image3 = ImageTk.PhotoImage(image3)

image4 = Image.open(r"C:\Users\Leekha\Desktop\images\Lion.jpg")
image4 = image4.resize((240, 240))
image4 = ImageTk.PhotoImage(image4)

label1 = tk.Label(image=image1)
label2 = tk.Label(image=image2)
label3 = tk.Label(image=image3)
label4 = tk.Label(image=image4)

label1.grid(row=0, column=0)
label2.grid(row=0, column=1)
label3.grid(row=1, column=0)
label4.grid(row=1, column=1)
root.mainloop()

輸出

當我們執行此程式碼時,應該會看到一個 tkinter 視窗,其中以網格形式顯示四張影像,如下所示 -

結論

總而言之,本文演示瞭如何使用 Python 的 tkinter 庫來建立一個 GUI,該 GUI 以網格格式顯示多個影像。透過使用 PIL 庫載入和調整影像大小,以及使用 grid 函式組織影像,我們能夠建立一個視覺上吸引人且直觀的介面。有了這些知識,開發人員可以建立更復雜和互動式的 GUI,這些 GUI 集成了影像,使使用者能夠以更自然和直觀的方式與軟體互動。

無論您是在構建照片庫、產品目錄還是任何其他需要顯示影像的應用程式,本文中介紹的技術都將為您實現目標提供堅實的基礎。總的來說,tkinter 的 grid 函式和影像處理功能為建立豐富而動態的 GUI 提供了一個強大的工具包。

更新於: 2023-12-05

2K+ 次檢視

開啟您的 職業生涯

透過完成課程獲得認證

立即開始
廣告

© . All rights reserved.