首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python3图形用户界面更改框架背景颜色

Python3图形用户界面更改框架背景颜色
EN

Stack Overflow用户
提问于 2018-07-28 21:37:23
回答 1查看 2.7K关注 0票数 0

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

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

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

代码语言:javascript
复制
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()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-29 08:40:10

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

代码语言:javascript
复制
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:Styles and Themes

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51571913

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档