您将需要创建一个自定义样式,然后将该样式应用于窗口小部件。要创建自定义样式,请首先获取的实例
ttk.Style,然后使用该
configure方法从现有样式中派生新样式。下面的示例创建一个名为“
Red.TCheckbutton”的新样式:
style = ttk.Style()style.configure("Red.TCheckbutton", foreground="red")接下来,当您想要更改颜色时,只需将此样式与小部件关联即可:
my_checkbutton.configure()
学习如何使用ttk样式的最佳资源是tkdocs.com。具体来说,http://www.tkdocs.com/tutorial/styles.html。
这是一个完整的工作示例:
import ttkimport Tkinter as tkclass ExampleApp(tk.frame): def __init__(self, *args, **kwargs): tk.frame.__init__(self, *args, **kwargs) self.var1 = tk.StringVar() self.var2 = tk.StringVar() f1 = ttk.frame(self) red_button = ttk.Button(f1, text="Red", command=self.make_red) default_button = ttk.Button(f1, text="Default", command=self.make_default) default_button.pack(side="left") red_button.pack(side="left") f2 = ttk.frame(self) self.cb_one = ttk.Checkbutton(f2, text="Option 1", variable=self.var1, onvalue=1, offvalue=0) self.cb_two = ttk.Checkbutton(f2, text="Option 2", variable=self.var2, onvalue=1, offvalue=0) self.cb_one.pack(side="left") self.cb_two.pack(side="left") f1.pack(side="top", fill="x") f2.pack(side="top", fill="x") style = ttk.Style() style.configure("Red.TCheckbutton", foreground="red") def make_red(self): self.cb_one.configure() self.cb_two.configure() def make_default(self): self.cb_one.configure() self.cb_two.configure()if __name__ == "__main__": root = tk.Tk() ExampleApp(root).pack(fill="both", expand=True) root.mainloop()


