python - 如何将 ttk.Notebook 框架配置为平面浮雕?

标签 python user-interface tkinter ttk

我正在为笔记本使用 ttk,我尝试将笔记本的框架更改为平面浮雕,但没有太多有用的资源

What I'm trying to change

环顾四周,我知道 ttk 非常依赖样式,所以我创建了一个新样式,但到目前为止只能更改几个元素,因为我找不到我想要的确切元素名称改变。这包括 Notebook 框架的浮雕。

    style = ttk.Style()
    style.theme_create(
        "name", parent="alt", settings = {
            ".": {"configure": {"background": BG_COLOUR,
                                "foreground": "white",
                                "relief": "flat"}},
            "TLabel": {"configure": {"foreground": "white",
                       "padding": 10,
                       "font": ("Calibri", 16)}},
            "TNotebook": {"configure": {"tabmargins": [2, 5, 2, 0]}
                         },
            "TNotebook.Tab": {
                "configure": {"relief" : "flat",
                              "bordercolor" : BG_COLOUR,
                              "darkcolor" : BG_COLOUR,
                              "lightcolor" : BG_COLOUR,
                              "padding": [5, 1], "background": BG_COLOUR
                             },
                "map": {"background": [("selected", BG_COLOUR)],
                        "expand": [("selected", [1, 1, 1, 0])]}
            }
        })

    style.theme_use("name")

你可能会看到我在遵循 Visual Studio 代码的风格,所以首先是使框架变平,然后展开选项卡,到目前为止 ttk 给我带来了困难

最佳答案

这是一个很老的问题,但我也有同样的疑问并且似乎找到了答案,所以我还是把它贴出来吧。使用 "borderwidth",而不是 "relief"

使用属性 "borderwidth" 可以设置边框的粗细。只需将其设置为零,浮雕就会消失。

你可以为notebook设置,让页面的边框消失。

"TNotebook": {
              "configure": {"tabmargins": [2, 5, 2, 0]},
              "borderwidth": 0
             }

我的程序中的示例:

正常(带边框/浮雕):

Normal (with borders/relief)

页面的扁平边框:

With flat border for the page

您还可以为笔记本标签设置它,使它们的边框消失:

"TNotebook.Tab": {
                  "configure": {
                                "borderwidth": 0,
                                "bordercolor" : BG_COLOUR,
                                "darkcolor" : BG_COLOUR,
                                "lightcolor" : BG_COLOUR,
                                "padding": [5, 1], "background": BG_COLOUR
                                }
                  }

两个边界都设置为零:

Both borders set to zero

我只在 Windows 上测试过,我不知道 Mac 或 Linux 是否有差异。

关于python - 如何将 ttk.Notebook 框架配置为平面浮雕?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57866990/

相关文章:

python - 这是我当前写入文件的方式。但是,我不能做UTF-8?

python - 使用 Tornado Websocket 进行单元测试 - 无属性 'io_loop' 错误

windows - 注销和登录后任务计划程序无法显示应用程序的 GUI(无论用户是否登录都运行)

java - Eclipse 无法通过应用程序启动器启动

python - 当按钮位于类内时 Tkinter 按钮的命令

python - TkKinter 是否广泛用于构建用户界面?

没有属性样板的 Python 类

java - 请推荐漂亮的 Java Swing 组件库

python - 样式中指定的填充被 Ttk Frame 忽略

python - 向现有多索引数据框添加附加索引