Python3 GUI改变框架背景颜色

Python3 GUI change frame background color

我是 python 的新手,我正在构建这个 GUI 界面。该代码代表了我主要在网上获得的东西,但已经能够非常成功地为我自己的用途进行编辑。无论如何,我希望整个背景的颜色不同于灰色。如您所见,我展开了小部件,可以更改小部件的背景颜色,但是主要内容仍然是灰色。

我想这意味着我需要更改框架背景颜色?代码中没有显示我多次尝试使用 .configure()、样式等来实现我的目标。我成功地使用了几种方法使文本部分的背景具有不同的颜色,但整体没有。

我想我在语法上遗漏了一些小东西,欢迎任何帮助让它工作 - 谢谢!

import tkinter
from tkinter import tt

class Adder(ttk.Frame):
    """The adders gui and functions."""
    def __init__(self, parent, *args, **kwargs):
        ttk.Frame.__init__(self, parent, *args, **kwargs)
        self.root = parent
        self.init_gui()

    def init_gui(self):
        """Builds GUI."""

        self.root.title('Number Adder')

        self.grid(column=0, row=0, sticky='nsew')

        self.num1_entry = ttk.Entry(self, width=5)
        self.num1_entry.grid(column=1, row = 2)

        ttk.Label(self, text='Number Adder').grid(column=0, row=0,
                columnspan=4)
        ttk.Label(self, text='Number one').grid(column=0, row=2,
                sticky='w')

        for child in self.winfo_children():
            child.grid_configure(padx=5, pady=5)

if __name__ == '__main__':
    root = tkinter.Tk()
    root.geometry('200x100')
    root.configure(background = 'blue')
    Adder(root)
    root.mainloop()

要为小部件设置背景颜色,您首先必须创建样式。然后您必须配置样式背景颜色并将其与您正在使用它的小部件类型相关联。将这三行作为 __init__() 函数的最后一行:

style = ttk.Style()     # Create style
style.configure("Blue.TFrame", background="blue") # Set bg color
self.config(style='Blue.TFrame')    # Apply style to widget

名称必须以标识小部件类型的部分结尾,在本例中为框架 => "TFrame"。蓝色是我给它起的名字,以区别于我可能拥有的其他框架样式。如果你只想要一种风格,你可以称之为 "TFrame"。

看看TkDocs:Styles and Themes