source: python/trunk/Demo/tkinter/ttk/combo_themes.py

Last change on this file was 391, checked in by dmik, 11 years ago

python: Merge vendor 2.7.6 to trunk.

  • Property svn:eol-style set to native
File size: 1.6 KB
Line 
1"""Ttk Theme Selector.
2
3Although it is a theme selector, you won't notice many changes since
4there is only a combobox and a frame around.
5"""
6import ttk
7
8class App(ttk.Frame):
9 def __init__(self):
10 ttk.Frame.__init__(self)
11
12 self.style = ttk.Style()
13 self._setup_widgets()
14
15 def _change_theme(self, event):
16 if event.widget.current(): # value #0 is not a theme
17 newtheme = event.widget.get()
18 # change to the new theme and refresh all the widgets
19 self.style.theme_use(newtheme)
20
21 def _setup_widgets(self):
22 themes = list(self.style.theme_names())
23 themes.insert(0, "Pick a theme")
24 # Create a readonly Combobox which will display 4 values at max,
25 # which will cause it to create a scrollbar if there are more
26 # than 4 values in total.
27 themes_combo = ttk.Combobox(self, values=themes, state="readonly",
28 height=4)
29 themes_combo.set(themes[0]) # sets the combobox value to "Pick a theme"
30 # Combobox widget generates a <<ComboboxSelected>> virtual event
31 # when the user selects an element. This event is generated after
32 # the listbox is unposted (after you select an item, the combobox's
33 # listbox disappears, then it is said that listbox is now unposted).
34 themes_combo.bind("<<ComboboxSelected>>", self._change_theme)
35 themes_combo.pack(fill='x')
36
37 self.pack(fill='both', expand=1)
38
39
40def main():
41 app = App()
42 app.master.title("Ttk Combobox")
43 app.mainloop()
44
45if __name__ == "__main__":
46 main()
Note: See TracBrowser for help on using the repository browser.