Каков наиболее эффективный способ форматирования стиля ttk в Python? - PullRequest
0 голосов
/ 16 ноября 2018

Я работаю над довольно большим приложением tkinter / ttk. Первоначально я определил стили и форматирование виджета в объявлении виджета. Это было довольно громоздко, и у меня была тонна строк, которые выглядели примерно так:

idLabel = Label(self, text='ID', fg=self.labelfg, bg=self.labelbg, font=self.labelfont, height=1, anchor='sw', highlightbackground=self.labelfg)

При определенных размерах это стало действительно трудно поддерживать. Я не пробовал класс ttk Style раньше, но я потратил много времени на преобразование из tkinter в ttk, и у меня много подобных проблем. Я думал, что смогу собрать все мои стили в одном месте, но кажется, что большая часть этого все еще должна быть сделана в линию. В настоящее время у меня есть класс стилей, который выглядит следующим образом:

...
self.style.theme_settings(current_theme,
                               {'.':
                                   {'configure':
                                        {'background'       : 'black',
                                         'selectbackground' : 'blue',
                                         'selectforeground' : 'white',
                                         'fieldbackground'  : 'black',
                                         'insertbackground' : 'white',
                                         'foreground'       : 'white',
                                         'relief'           : 'flat'}},
                                'EntryTabView.TFrame':
                                   {'configure':
                                        {'background'       : 'black',
                                         'relief'           : 'sunken',
                                         'borderwidth'      : 10}},
                                'CompetitorInfoView_Label.TLabel':
                                    {'configure':
                                         {'background'      : 'black',
                                          'foreground'      : 'white',
                                          'anchor'          : 'w',
                                          'font'            : gen_font}},
...

Это не намного лучше, потому что есть еще опции, которые я должен указать inline. Не говоря уже о том, что, похоже, нигде нет полезной документации по ttk Python Styling (укажите мне, если она там была, я посмотрел так глубоко).

У меня следующий вопрос: как мне наиболее эффективно использовать класс стиля tkinter.ttk?

Кроме того, почему нет надежной документации по этому вопросу?

Я очень расстроен; может быть, мне просто нужно узнать что-то другое, кроме tkinter. Буду признателен за любую помощь или совет.

...