MOON
Server: LiteSpeed
System: Linux server4.datacenterland.com 5.4.203-1-pve #1 SMP PVE 5.4.203-1 (Fri, 26 Aug 2022 14:43:35 +0200) x86_64
User: khakzad (1054)
PHP: 5.6.40
Disabled: show_source, system, shell_exec, passthru, exec, popen, proc_open, symlink
Upload Files
File: //lib64/python2.7/Demo/tkinter/ttk/combo_themes.py
"""Ttk Theme Selector.

Although it is a theme selector, you won't notice many changes since
there is only a combobox and a frame around.
"""
import ttk

class App(ttk.Frame):
    def __init__(self):
        ttk.Frame.__init__(self)

        self.style = ttk.Style()
        self._setup_widgets()

    def _change_theme(self, event):
        if event.widget.current(): # value #0 is not a theme
            newtheme = event.widget.get()
            # change to the new theme and refresh all the widgets
            self.style.theme_use(newtheme)

    def _setup_widgets(self):
        themes = list(self.style.theme_names())
        themes.insert(0, "Pick a theme")
        # Create a readonly Combobox which will display 4 values at max,
        # which will cause it to create a scrollbar if there are more
        # than 4 values in total.
        themes_combo = ttk.Combobox(self, values=themes, state="readonly",
                                    height=4)
        themes_combo.set(themes[0]) # sets the combobox value to "Pick a theme"
        # Combobox widget generates a <<ComboboxSelected>> virtual event
        # when the user selects an element. This event is generated after
        # the listbox is unposted (after you select an item, the combobox's
        # listbox disappears, then it is said that listbox is now unposted).
        themes_combo.bind("<<ComboboxSelected>>", self._change_theme)
        themes_combo.pack(fill='x')

        self.pack(fill='both', expand=1)


def main():
    app = App()
    app.master.title("Ttk Combobox")
    app.mainloop()

if __name__ == "__main__":
    main()