summaryrefslogtreecommitdiffstats
path: root/Demo/tkinter/ttk/theme_selector.py
diff options
context:
space:
mode:
authorGuilherme Polo <ggpolo@gmail.com>2009-01-28 16:06:51 (GMT)
committerGuilherme Polo <ggpolo@gmail.com>2009-01-28 16:06:51 (GMT)
commita7d2797e803151a4fab5a3f08d8c9fceb44bb235 (patch)
treeacd8c07fdb832c4c5e06fdf561684ef57ffb6581 /Demo/tkinter/ttk/theme_selector.py
parent5f2384857468552554bbf9414d1389cf62142ae1 (diff)
downloadcpython-a7d2797e803151a4fab5a3f08d8c9fceb44bb235.zip
cpython-a7d2797e803151a4fab5a3f08d8c9fceb44bb235.tar.gz
cpython-a7d2797e803151a4fab5a3f08d8c9fceb44bb235.tar.bz2
Merged revisions 69053 via svnmerge from
svn+ssh://pythondev/python/trunk ........ r69053 | guilherme.polo | 2009-01-28 13:56:01 -0200 (Wed, 28 Jan 2009) | 2 lines Demos for ttk added. ........
Diffstat (limited to 'Demo/tkinter/ttk/theme_selector.py')
-rw-r--r--Demo/tkinter/ttk/theme_selector.py61
1 files changed, 61 insertions, 0 deletions
diff --git a/Demo/tkinter/ttk/theme_selector.py b/Demo/tkinter/ttk/theme_selector.py
new file mode 100644
index 0000000..09c5a72
--- /dev/null
+++ b/Demo/tkinter/ttk/theme_selector.py
@@ -0,0 +1,61 @@
+"""Ttk Theme Selector v2.
+
+This is an improvement from the other theme selector (themes_combo.py)
+since now you can notice theme changes in Ttk Combobox, Ttk Frame,
+Ttk Label and Ttk Button.
+"""
+import tkinter
+from tkinter import ttk
+
+class App(ttk.Frame):
+ def __init__(self):
+ ttk.Frame.__init__(self, borderwidth=3)
+
+ self.style = ttk.Style()
+
+ # XXX Ideally I wouldn't want to create a Tkinter.IntVar to make
+ # it works with Checkbutton variable option.
+ self.theme_autochange = tkinter.IntVar(self, 0)
+ self._setup_widgets()
+
+ def _change_theme(self):
+ self.style.theme_use(self.themes_combo.get())
+
+ def _theme_sel_changed(self, widget):
+ if self.theme_autochange.get():
+ self._change_theme()
+
+ def _setup_widgets(self):
+ themes_lbl = ttk.Label(self, text="Themes")
+
+ themes = self.style.theme_names()
+ self.themes_combo = ttk.Combobox(self, values=themes, state="readonly")
+ self.themes_combo.set(themes[0])
+ self.themes_combo.bind("<<ComboboxSelected>>", self._theme_sel_changed)
+
+ change_btn = ttk.Button(self, text='Change Theme',
+ command=self._change_theme)
+
+ theme_change_checkbtn = ttk.Checkbutton(self,
+ text="Change themes when combobox item is activated",
+ variable=self.theme_autochange)
+
+ themes_lbl.grid(ipadx=6, sticky="w")
+ self.themes_combo.grid(row=0, column=1, padx=6, sticky="ew")
+ change_btn.grid(row=0, column=2, padx=6, sticky="e")
+ theme_change_checkbtn.grid(row=1, columnspan=3, sticky="w", pady=6)
+
+ top = self.winfo_toplevel()
+ top.rowconfigure(0, weight=1)
+ top.columnconfigure(0, weight=1)
+ self.columnconfigure(1, weight=1)
+ self.grid(row=0, column=0, sticky="nsew", columnspan=3, rowspan=2)
+
+
+def main():
+ app = App()
+ app.master.title("Theme Selector")
+ app.mainloop()
+
+if __name__ == "__main__":
+ main()