mirror of
https://github.com/python/cpython.git
synced 2025-10-14 10:53:40 +00:00
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. ........
This commit is contained in:
parent
5f23848574
commit
a7d2797e80
16 changed files with 1196 additions and 0 deletions
61
Demo/tkinter/ttk/theme_selector.py
Normal file
61
Demo/tkinter/ttk/theme_selector.py
Normal file
|
@ -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()
|
Loading…
Add table
Add a link
Reference in a new issue