diff options
author | Guilherme Polo <ggpolo@gmail.com> | 2009-01-28 16:06:51 (GMT) |
---|---|---|
committer | Guilherme Polo <ggpolo@gmail.com> | 2009-01-28 16:06:51 (GMT) |
commit | a7d2797e803151a4fab5a3f08d8c9fceb44bb235 (patch) | |
tree | acd8c07fdb832c4c5e06fdf561684ef57ffb6581 /Demo/tkinter/ttk/theme_selector.py | |
parent | 5f2384857468552554bbf9414d1389cf62142ae1 (diff) | |
download | cpython-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.py | 61 |
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() |