无法更改继承自 ttk.Frame 的 类 的样式

Can't change styles for classes inheriting from ttk.Frame

所以我只想更改框架的背景,这样我就可以正确地布置它们,但我似乎无法更改框架的样式。

style.configure('TFrame', background='red')
style.configure('Blue.TFrame', background='blue')

main_window = MainWindow(root, style='Blue.TFrame')

上面的代码结果是红色背景,而我需要把它改成蓝色,如果我不改变TFrame背景,根本就没有背景颜色。 我的 MainWindow class 确实继承自 ttk.Frame,所以我不知道这是否是造成它的原因...

最小可重现示例:

import tkinter as tk
from tkinter import ttk

class MainWindow(ttk.Frame):
    def __init__(self, parent, *args, **kwargs):
        super().__init__(parent)
        self.parent = parent

        # Search_company shortcut
        self.search_comp = ttk.Entry(self)
        self.search_comp.grid(row=0, column=0)

def main():
    root = tk.Tk()
    root.state('zoomed')

    # Configuring styles
    style = ttk.Style()

    style.configure('TFrame', background='red')
    style.configure('Blue.TFrame', background='blue')

    main_window = MainWindow(root, style='Blue.TFrame')
    main_window.grid(row=0, column=1, sticky='nsew')

    root.mainloop()

if __name__ == "__main__":
    main()

您没有将 style 选项传递给超类。必须是这样的:

super().__init__(parent, *args, **kwargs)