自定义 tkinter 标签背景

Custom tkinter label background

我正在做一个学校项目,现在我遇到了标签背景的问题。

objective是为了使标签的背景在深色和浅色主题中都与框架相同,如果可能的话,去除按钮边缘的细微差别颜色。

import tkinter
import customtkinter
root_tk = customtkinter.CTk()  # create CTk window like you do with the Tk window
root_tk.geometry("1280x720")
root_tk.minsize(1280, 720)
class GUI:
    def __init__(self, root_tk):
        Frame1 = customtkinter.CTkFrame(root_tk)
        Frame1.pack
        frame2 = customtkinter.CTkFrame(Frame1, width=100, height=720)
        frame2.pack(pady=20,padx=20)
        frame3 = customtkinter.CTkFrame(root_tk, width=250, height=725)
        frame3.pack()
        frame3.place(anchor="w", relx=0.0, rely=0.5, relwidth=0.2, relheight=1)
        self.test()

    def test(self):
        self.switch = customtkinter.CTkSwitch(master=root_tk, text="Dark Mode", command=self.theme_change)
        self.switch.toggle(1)
        self.switch.place(relx=0.05, rely=0.05)
        self.label_width = customtkinter.CTkLabel(root_tk, text="glasses width:")
        self.label_width.place(relx=0.1, rely=0.67, anchor=tkinter.CENTER)
        self.label_height = customtkinter.CTkLabel(root_tk, text="glasses height:")
        self.label_height.place(relx=0.1, rely=0.77, anchor=tkinter.CENTER)
        self.button_add_Face = customtkinter.CTkButton(root_tk, width=200, height=50, border_width=0, corner_radius=8, hover=True, text="Adicionar Rostos", command=print("added"))
        self.button_add_Face.place(relx=0.1, rely=0.6, anchor=tkinter.CENTER)
    def theme_change(self):
        if self.switch.get() == 1:
            customtkinter.set_appearance_mode("dark")
        else:
            customtkinter.set_appearance_mode("light")   
start = GUI(root_tk)
root_tk.mainloop()

根据 CTkBaseClass 的源代码为小部件。只要您没有为您的小部件明确定义 bg_color,背景颜色应该与您的主人的 fg_color 相同。

看看configure method of the BaseClass and follow it to the detect_color_of_master

the objective is to make the label's background the same as the frame in both dark and light themes

所以这应该可以解决问题:

Frame1 = customtkinter.CTkFrame(root_tk,fg_color=root_tk.fg_color)
Frame1.pack()

self.button_add_Face = customtkinter.CTkButton(Frame1, width=200, height=50, border_width=0, corner_radius=8, hover=True, text="Adicionar Rostos", command=print("added"), border_color=root_tk.fg_color)

但您可能对 ThemeManager. There are some Themes 更感兴趣,您可以以示例的形式再做一个 .json 文件,并将其添加到此目录中以应用您自己的样式。