如何使用 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 提供了一個強大的工具包。
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP