如何設定和自定義 tkinterguizero 選單欄樣式?


Tkinter 和 Guizero 是用於建立 GUI 的流行 Python 庫,在增強使用者體驗方面,自定義選單欄是一個關鍵的考慮因素。在本教程中,我們將重點介紹在 Tkinter 和 Guizero 中設定樣式和自定義選單欄的技術。

瞭解 Tkinter 和 Guizero

在深入自定義之前,讓我們簡要概述一下 Tkinter 和 Guizero。

  • Tkinter − Tkinter 是 Python 附帶的標準 GUI 工具包。它提供了一套用於建立圖形使用者介面的工具,並廣泛用於開發桌面應用程式。Tkinter 包含各種小部件,選單欄是組織和訪問不同功能的關鍵元件。

  • Guizero − Guizero 是一個更簡單、更輕量級的 Python GUI 庫。它構建在 Tkinter 之上,旨在對初學者友好。Guizero 提供易於使用的函式來建立視窗、按鈕和選單欄,使其成為中小型專案的絕佳選擇。

建立基本選單欄

在自定義之前,讓我們使用 Tkinter 和 Guizero 建立一個基本選單欄。

示例:Tkinter 選單欄

請檢視以下示例 -

import tkinter as tk

def dummy_command():
   print("This is a dummy command.")

root = tk.Tk()
root.geometry("720x250")
root.title("Tkinter Menu Bar")

# Creating a menu bar
menu_bar = tk.Menu(root)

# Adding File menu
file_menu = tk.Menu(menu_bar, tearoff=0)
file_menu.add_command(label="Open", command=dummy_command)
file_menu.add_command(label="Save", command=dummy_command)
file_menu.add_separator()
file_menu.add_command(label="Exit", command=root.destroy)
menu_bar.add_cascade(label="File", menu=file_menu)

# Adding Edit menu
edit_menu = tk.Menu(menu_bar, tearoff=0)
edit_menu.add_command(label="Cut", command=dummy_command)
edit_menu.add_command(label="Copy", command=dummy_command)
edit_menu.add_command(label="Paste", command=dummy_command)
menu_bar.add_cascade(label="Edit", menu=edit_menu)

# Displaying the menu bar
root.config(menu=menu_bar)

# Running the GUI
root.mainloop()

輸出

執行以上指令碼將為您提供以下帶有基本選單欄的 Tkinter 視窗 -

示例:Guizero 選單欄

請檢視以下示例 -

from guizero import App, MenuBar

def dummy_command():
   print("This is a dummy command.")

app = App("Guizero Menu Bar")

# Creating a menu bar
menu_bar = MenuBar(
   app, toplevel=["File", "Edit"], 
   options=[
      [ ["Open", dummy_command], ["Save", dummy_command], ["Exit", app.destroy] ],
      [ ["Cut", dummy_command], ["Copy", dummy_command], ["Paste", dummy_command] ]
   ]
)

# Displaying the menu bar
app.display()

輸出

執行以上指令碼將為您提供以下帶有基本選單欄的 Guizero 視窗 -

這些基本示例建立了一個包含“檔案”和“編輯”選單的選單欄視窗。現在,讓我們繼續自定義這些選單欄。

設定 Tkinter 選單欄樣式

讓我們瞭解如何設定和自定義 Tkinter 選單欄的樣式。

更改顏色

Tkinter 允許您更改選單欄和選單項的背景和前景色。以下程式碼片段演示瞭如何自定義顏色 -

# Changing menu bar color
menu_bar.config(bg="lightblue")

# Changing menu item colors
file_menu.config(bg="lightblue", fg="black")
edit_menu.config(bg="lightblue", fg="black")

新增圖示

Tkinter 允許您向選單項新增圖示,從而提供更具視覺吸引力的介面。要新增圖示,您可以將 compound 選項與 label 屬性一起使用 -

from tkinter import PhotoImage

# Create an image object
icon = PhotoImage(file="icon.png")

# Adding icon to a menu item
file_menu.add_command(label="Open", command=dummy_command, image=icon, compound="left")

自定義 Guizero 選單欄

Guizero 透過提供有限的選項來簡化自定義過程。但是,您仍然可以獲得視覺上令人愉悅的選單欄。

更改顏色

Guizero 允許您設定選單欄的背景顏色。以下程式碼片段演示瞭如何自定義顏色 -

# Changing menu bar color
menu_bar.bg = "lightblue"

新增圖示

Guizero 沒有內建對選單項中圖示的支援,但是您可以透過建立帶有影像的自定義按鈕來實現類似的效果 -

from guizero import PushButton

# Create an image object
icon = "icon.png"

# Adding icon to a menu item
open_button = PushButton(app, image=icon, command=dummy_command)

結論

自定義 Tkinter 和 Guizero 中的選單欄極大地提升了 Python GUI 應用程式的視覺吸引力和使用者體驗。無論您選擇 Tkinter 的廣泛自定義選項還是 Guizero 的簡單性,在美觀和功能之間找到合適的平衡至關重要。

更新於: 2024年2月15日

195 次瀏覽

啟動您的 職業生涯

透過完成課程獲得認證

開始學習
廣告