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 69 70 71 72 73 74 75 76 77
|
from tkinter import *
from tkinter import messagebox # Librairie des fenêtres d'alerte
def removeLabel(var):
global frames
global i
z = -1
for frame in frames:
z = z + 1
# Check the text variable of the label of this frame
if frame.winfo_children()[4].var == var: # 4 est le nombre de labels à générer dans une frame
# Supprime frame
frame.destroy()
# Mise à jour du nombre de frame
frames = frames[:z] + frames[z+1:]
z = -1
# Mise à jour du nombre de frame
r = 0
for frame in frames:
frame.winfo_children()[4].var.set(r)
r = r + 1
i = i - 1
print("i", i)
def addNewLabel():
global frames, i
global table
var = IntVar()
frame = Frame(root)
i = i + 1
if i <= 5:
frame.grid(row=i, column=4)
var.set(len(frames))
l = Label(frame, text="test")
l.grid(row=0, column=0)
l = Label(frame, textvariable=var)
l.grid(row=0, column=1)
l = Label(frame, textvariable=var)
l.grid(row=0, column=2)
l = Label(frame, textvariable=var)
l.grid(row=0, column=3)
l = Label(frame, textvariable=var)
l.grid(row=0, column=4)
l.var = var
b = Button(frame, text="Remove", command=lambda: removeLabel(var))
b.grid(row=0, column=5)
frames.append(frame) # liste des frames générée
print("var.get() ", var.get(), " i ",i)
# var.trace("w", lambda name, index, mode, i=i: removeLabel(i))
# print("eeeee", i)
if i > 5: # Limite du nombre de 10 frames à générer
messagebox.showinfo("Info","Seulement 5 peuvent être sélectionées")
c.configure(state=DISABLED)
return "break"
print("+i+",i)
if __name__ == '__main__':
root = Tk()
frames = []
table = []
i = 1
c = Button(root, text="add label", command=addNewLabel)
c.grid(column=0, row=0)
root.mainloop() |
Partager