Tkinter стилизация пользовательских виджетов и создание пользовательских тем - PullRequest
0 голосов
/ 03 мая 2020

Я хотел бы создать собственную тему для своего приложения. Я не могу получить виджет кнопки для раскрытия в моем текстовом коде ниже. Я могу настроить кнопку, используя параметр ширины, но она должна расширяться, чтобы соответствовать тексту.

Есть идеи, что не так с кодом ниже?

import tkinter
from tkinter import ttk

root = tkinter.Tk()

colors = {
          "frame": "#efefef",
          "disabledfg": "#aaaaaa",
          "selectbg": "#657a9e",
          "selectfg": "#ffffff"
         }

style = ttk.Style()
style.theme_create("test", "default", settings={
    ".": {
        "configure":
            {"background": colors['frame'],
             "troughcolor": colors['frame'],
             "selectbackground": colors['selectbg'],
             "selectforeground": colors['selectfg'],
             "fieldbackground": colors['frame'],
             "font": "TkDefaultFont",
             "borderwidth": 1},
        "map": {"foreground": [("disabled", colors['disabledfg'])]}
    },
    "TButton": {
                "configure": {"width": 10, "anchor": "left"},
                "layout": [
                    ("Button.button", {"children":
                        [("Button.focus", {"children":
                            [("Button.padding", {"children":
                                [("Button.label", {"side": "left", "expand": 1})]
                            })]
                        })]
                    })
                ]
            }})


style.theme_use("test")
button_send = ttk.Button(root, text="TEST BUTTON ONLY!").grid(row=0, column=0, padx=50, pady=50)

root.mainloop()
...