Python3 GUI更改框架背景颜色

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (1187)

我是python的新手,我正在构建这个GUI界面。代码代表我在网上获得的东西,但是能够非常成功地编辑我自己的用途。无论如何,我想要完整的背景是一种不同于灰色的不同颜色。正如您所看到的,我扩展了窗口小部件并可以更改窗口小部件的背景颜色,但主要内容仍然是灰色的。

我认为这意味着我需要更改Frame背景颜色?代码中没有显示我尝试使用.configure(),styles等来完成我的目标。我成功的几种方法是使文本部分的背景颜色不同,但不是整体。

我假设我遗漏了一些小的语法,欢迎任何帮助让它工作 - 谢谢!

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()
提问于
用户回答回答于

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

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

该名称必须以标识窗口小部件类型的部分结束,在本例中为Frame =>“TFrame”。蓝色是我给它分隔的名称,如果我可能有其他框架样式。如果你只想要一种风格,你可以称之为“TFrame”。

看看TkDocs:样式和主题

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励