1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
| #!/usr/bin/python
# -*- coding: utf-8 -*-
#
#
try:
import Tkinter as Tk
except:
import tkinter as Tk
def insertwidget(master, w, opt, wmopt):
if len(master.winfo_children()):
wmgr = master.winfo_children()[0].winfo_manager()
else:
wmgr = 'pack'
widget_list = []
for widget in master.winfo_children():
if wmgr == 'pack':
widget_list.append((widget, widget.pack_info()))
elif wmgr == 'grid':
widget_list.append((widget, widget.grid_info()))
elif wmgr == 'place':
widget_list.append((widget, widget.place_info()))
for widget in widget_list:
widget[0].forget()
if w.lower() == 'label':
new_w = Tk.Label(master)
elif w.lower() == 'button':
new_w = Tk.Button(master)
elif w.lower() == 'entry':
new_w = Tk.Entry(master)
elif w.lower() == 'text':
new_w = Tk.Text(master)
elif w.lower() == 'canvas':
new_w = Tk.Canvas(master)
elif w.lower() == 'frame':
new_w = Tk.Frame(master)
new_w.config(opt)
if wmgr == 'pack':
new_w.pack(wmopt)
elif wmgr == 'grid':
new_w.grid(wmopt)
elif wmgr == 'place':
new_w.place(wmopt)
for widget in widget_list:
if wmgr == 'pack':
widget[0].pack(widget[1])
elif wmgr == 'grid':
widget[0].grid(widget[1])
elif wmgr == 'place':
widget[0].place(widget[1])
fen=Tk.Tk()
f1 = Tk.Frame(fen, width=600, height=200, bg='black')
f1.pack(side=Tk.TOP, padx=5, pady=10)
f2 = Tk.Frame(fen, bg='white')
f2.pack(side=Tk.TOP, padx=5, pady=10, fill=Tk.BOTH, expand=1)
l1 = Tk.Label(f2, bg='green', width=10)
l1.grid(row=0, column=0)
l2 = Tk.Label(f2, bg='red', width=10)
l2.grid(row=1, column=1)
Tk.Button(fen, text='Quitter', command=fen.quit).pack(side=Tk.LEFT,
pady=5, padx=5)
Tk.Button(fen, text='Insérer', command=lambda: insertwidget(fen,
'Label', {'bg': 'white', 'text': 'Test', 'bd': '0'}, {'pady': '5',
'padx': '5', 'expand': '1', 'fill': 'x'})).pack(side=Tk.RIGHT,
pady=5, padx=5)
fen.mainloop() |
Partager