使用 Tkinter 切換明暗主題


您可能對程式設計一個能夠在明亮和黑暗主題之間流暢切換的圖形使用者介面 (GUI) 感興趣。如果您使用的是 Python,那麼 Tkinter 是建立此類應用程式的首選庫。本教程將向您展示如何使用 Tkinter 建立一個明暗主題切換器。

什麼是 Tkinter?

Tkinter 是 Python 的預設 GUI 包。它是開發桌面應用程式的首選方法之一。Tkinter 的眾多優勢之一是其簡單性和可定製性,它允許您建立具有可更改屬性的小部件和介面,例如按鈕、標籤、文字框、選單等等。

主題切換功能的重要性

主題切換功能透過允許使用者根據自己的喜好更改應用程式的外觀來增強使用者體驗。例如,長時間使用電腦的人可能會發現深色主題更舒適。因此,在任何現代軟體程式中,能夠在明暗主題之間切換都是一項重要的功能。

現在讓我們深入瞭解編寫 Python Tkinter 主題切換器的細節。

設定

確保您的計算機上已設定好 Python。Python 自帶 Tkinter,因此無需額外安裝。

製作明暗主題切換器

匯入必要的庫

第一步是匯入所需的庫 -

from tkinter import Tk, Button

建立基本的 Tkinter 視窗

接下來,讓我們構建一個簡單的 Tkinter 視窗

root = Tk()
root.geometry("300x300")
root.title("Theme Changer")
root.mainloop()

新增主題切換功能

現在我們將開發一個主題切換功能

def change_theme():
   current_bg = root.cget("bg")
   new_bg = "white" if current_bg == "black" else "black"
   root.configure(bg=new_bg)

此過程中使用 cget() 方法來獲取當前的背景顏色。如果它是黑色,我們將切換到白色;如果不是黑色,我們將切換到黑色。

新增按鈕

最後,讓我們新增一個按鈕,當點選時,它將呼叫 change_theme() 函式 -

change_theme_button = Button(root, text="Change Theme", command=change_theme)
change_theme_button.pack()

完整程式將如下所示 -

from tkinter import Tk, Button

def change_theme():
   current_bg = root.cget("bg")
   new_bg = "white" if current_bg == "black" else "black"
   root.configure(bg=new_bg)

root = Tk()
root.geometry("300x300")
root.title("Theme Changer")
change_theme_button = Button(root, text="Change Theme", command=change_theme)
change_theme_button.pack()
root.mainloop()

這是一個簡單的應用程式。這可以擴充套件到允許您更改每個小部件的顏色,而不僅僅是背景。

高階主題切換器

對於更高階的主題切換器,您可以建立不同的配色方案並在它們之間切換。例如

from tkinter import Tk, Button, Label

def change_theme():
   current_bg = root.cget("bg")
   new_theme = "light" if current_theme == "dark" else "dark"
   theme_colors = themes[new_theme]
   root.configure(bg=theme_colors["bg"])
   change_theme_button.configure(bg=theme_colors["button"], fg=theme_colors["text"])
   info_label.configure(bg=theme_colors["bg"], fg=theme_colors["text"])
   global current_theme
   current_theme = new_theme

themes = {
   "light": {"bg": "white", "button": "lightgrey", "text": "black"},
   "dark": {"bg": "black", "button": "grey", "text": "white"}
}

current_theme = "light"

root = Tk()
root.geometry("300x300")
root.title("Advanced Theme Changer")

info_label = Label(root, text="Click the button to change the theme")
info_label.pack(pady=10)

change_theme_button = Button(root, text="Change Theme", command=change_theme)
change_theme_button.pack()

root.mainloop()

上面的程式碼定義了兩個主題,“light”和“dark”,每個主題都有不同的背景、按鈕和文字顏色。然後,我們建立了 info_label 和 change_theme_button 分別向用戶提供資訊和在主題之間進行選擇。change_theme 函式根據選定的主題更改所有元件的顏色。

結論

現代應用程式必須具備主題切換功能,因為它透過滿足個人喜好和舒適度來增強使用者體驗。您可以使用 Python 的 Tkinter 模組在您的桌面程式中有效地整合此功能。如上所示,可以建立基本和高階主題切換器,並且透過進一步的研究和修改,您的程式可以儘可能地使用者友好。

更新於: 2023-07-18

2K+ 閱讀量

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.