Skip to content

Instantly share code, notes, and snippets.

@kuchida1981
Created April 9, 2014 09:29
Show Gist options
  • Save kuchida1981/10246947 to your computer and use it in GitHub Desktop.
Save kuchida1981/10246947 to your computer and use it in GitHub Desktop.
Tkinter ウィジェットプレビュー
# coding: utf8
import sys
import Tkinter as Tk
WidgetList = [
'BaseWidget',
'BitmapImage',
'BooleanVar',
'Button',
'CallWrapper',
'Canvas',
'Checkbutton',
'DoubleVar',
'Entry',
'Event',
'Frame',
'Grid',
'Image',
'IntVar',
'Label',
'LabelFrame',
'Listbox',
'Menu',
'Menubutton',
'Message',
'Misc',
'OptionMenu',
'Pack',
'PanedWindow',
'PhotoImage',
'Place',
'Radiobutton',
'Scale',
'Scrollbar',
'Spinbox',
'StringVar',
'Studbutton',
'Text',
'Tk',
'Toplevel',
'Tributton',
'Variable',
'Widget',
'Wm',
'XView',
'YView',
]
class Dialog(Tk.Toplevel):
def __init__(self, parent, is_modal = False, widget = Tk.Frame):
Tk.Toplevel.__init__(self, parent)
self.wm_withdraw()
self.transient(parent)
if is_modal: self.grab_set()
self.root_widget = widget(self)
self.root_widget.pack()
self.root_widget.focus_set()
self.wm_deiconify()
self.wait_window()
class PreviewDialog(Dialog):
def __init__(self, parent, is_modal = False, widget = Tk.Frame):
Dialog.__init__(self, parent, is_modal = False, widget = Tk.Frame)
class PreviewEmptyFrame(Tk.Frame):
def __init__(self, master = None, *args, **kwargs):
Tk.Frame.__init__(self, master = None, *args, **kwargs)
Tk.Button(self, text = 'Module not found').pack()
class Mainwindow(Tk.Frame):
def __init__(self, master = None, *args, **kwargs):
Tk.Frame.__init__(self, master, *args, **kwargs)
self.selected_item = Tk.IntVar()
self.selected_ttk = Tk.BooleanVar(value = True)
self.listbox = Tk.Listbox(master = self)
self.listbox.grid(row = 0, column = 0)
self.listbox.insert(Tk.END, *WidgetList)
scrollbar = Tk.Scrollbar(self, orient = 'v', command = self.listbox.yview)
self.listbox.configure(yscrollcommand = scrollbar.set)
scrollbar.grid(row = 0, column = 1, sticky = 'ns')
ctrl_frame = Tk.Frame(self)
ctrl_frame.grid(row = 0, column = 2)
Tk.Checkbutton(ctrl_frame, text = 'ttk', variable = self.selected_ttk).pack()
Tk.Button(ctrl_frame, text = 'do preview', command = self.do_preview).pack()
def do_preview(self):
widget_name = WidgetList[int(self.listbox.curselection()[0])].lower()
is_ttk = bool(self.selected_ttk.get())
try:
__import__('preview_' + widget_name, globals(), locals(), [], -1)
except ImportError as e:
Widget = PreviewEmptyFrame
print 'test'
PreviewDialog(self.master, is_modal = True, widget = Widget)
def main(argv):
root = Tk.Tk()
mainwindow = Mainwindow(master = root)
mainwindow.pack()
root.mainloop()
if __name__ == '__main__':
main(sys.argv)
@shah9
Copy link

shah9 commented Dec 16, 2016

in your program line no. 105 show some error
SyntaxError: Missing parentheses in call to 'print'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment