如何删除ttk样式?我正在对包含ttk样式的代码进行单元测试,并且每个代码都需要在测试夹具的拆卸方法中删除,否则测试1中的样式设置会影响测试2的结果。 在下面的简化示例中,我为第1列设置了样式。
import tkinter.ttk as ttk
style = ttk.Style()
style.configure('1.TEntry', **{'foreground': 'maroon'})
style.configure('1.TEntry', **{'foreground': ''})
据我所知Shipman和ttk man page,唯一可能是清算期权价值(' maroon' - >'' )显示在上面代码的最后一行。
是否可以删除选项'前景'来自' 1.TEntry'?更好的是,是否可以完全删除' 1.TEntry'?
答案 0 :(得分:2)
这从未实施过。在Tcl / Tk中,可以使用从属解释器创建这种测试,并丢弃整个测试环境。在Python中,我认为最接近的等价物是创建一个线程,在该线程中加载Tk并在测试后销毁它。这应该隔离各种Tk实例。在ttk中,一旦我们创建了一个布局或样式选项,Tcl中就没有方法可以从包含它们的表中删除这些项。有关最后一个字,请参阅Tcl ttk man page,但您看不到ttk::style layout delete
或等效命令。
答案 1 :(得分:0)
我陷入了类似情况。在这种情况下,最简单的方法是将ttk.Entry小部件配置为style="TEntry"
。
例如
entry = ttk.Entry(..., style="1.TEntry") # setting maroon foreground
...
entry.config(style="TEntry") # removing maroon foreground