在Python中格式化ttk样式的最有效方法是什么?

时间:2018-11-16 00:56:15

标签: python user-interface tkinter ttk

我正在处理一个相当大的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}},
...

这并没有做得更好,因为仍然有一些选项必须内联指定。更不用说在任何地方似乎都没有关于ttk Python样式的有用文档(如果我在那看起来很深,请给我指出)。

我的问题如下:我应该如何最有效地利用tkinter.ttk Style类?

此外,为什么没有可靠的文档?

我很沮丧。也许我只需要学习tkinter以外的其他知识。任何帮助或建议,将不胜感激。

0 个答案:

没有答案