【发布时间】:2017-06-07 18:39:09
【问题描述】:
这个问题涉及 Python 和 Tkinter。
我想同时使用两个不同的 ttk 主题,例如'clam' 和 'vista' 在一个 Tkinter 窗口中。所以我写了这个:
import tkinter as tk
import tkinter.ttk as ttk
class GUI(tk.Tk):
def __init__(self):
super().__init__()
Button_v1()
Button_v2()
class Button_v1(ttk.Button):
def __init__(self, default_text="Test"):
super().__init__(text=default_text)
s = ttk.Style()
s.theme_use('clam')
s.configure(self.winfo_class(), foreground='blue')
self.pack()
class Button_v2(ttk.Button):
def __init__(self, default_text="Test2"):
super().__init__(text=default_text)
s2 = ttk.Style()
s2.theme_use('vista')
s2.configure(self.winfo_class(), foreground='red')
self.pack()
GUI().mainloop()
代码加载,但是:
我预计第一个 Button 的前景为蓝色,第二个 Button 的前景为红色,并且使用两个单独的主题。
相反,两个按钮都有红色前景,并且都应用相同的主题。
是否可以在一个 Tkinter 程序中使用两个单独的 ttk 主题?
【问题讨论】:
-
你不能那样做。但是,您可以在运行时更改它。