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
| import tkinter as tk
def populate(frame):
'''Put in some fake data'''
Police_titre = ("arial", 18, "bold")
fic = open("Data_form_saisie_livre.txt", "r")
data = fic.readlines()
label_titre_fenetre = tk.Label(frame, text="Saisir un livre", bg="grey", pady="10", font=Police_titre, fg="white")
label_titre_fenetre.grid(row=0, column=0, columnspan=2, sticky="we")
rw = 0
for ligne in data:
rw = rw + 2
lim = ligne.index("?")
var = ligne[lim + 1:]
var_label = "label_" + ligne[:lim]
print(var)
if var == "resume\n":
var_label = tk.Label(frame, text=ligne[:lim], bg="grey", pady="5")
var = tk.Text(frame, width=30)
var_label.grid(row=rw, column=0, sticky="E", padx=5)
var.grid(row=rw, column=1, sticky="W", padx=10)
label_vide = tk.Label(frame, bg="grey", pady="10")
label_vide.grid()
else:
var_label = tk.Label(frame, text=ligne[:lim], bg="grey", pady="5")
var = tk.Entry(frame, width=30)
var_label.grid(row=rw, column=0, sticky="E", padx=5)
var.grid(row=rw, column=1, sticky="W", padx=10)
def onFrameConfigure(canvas):
'''Reset the scroll region to encompass the inner frame'''
canvas.configure(scrollregion=canvas.bbox("all"))
root = tk.Tk()
canvas = tk.Canvas(root, width=450, height=600, borderwidth=0, background="grey")
frame = tk.Frame(canvas, background="grey")
vsb = tk.Scrollbar(root, orient="vertical", command=canvas.yview)
canvas.configure(yscrollcommand=vsb.set)
vsb.pack(side="right", fill="y")
canvas.pack(side="left", fill="both", expand=True)
canvas.create_window((4,4), window=frame, anchor="nw")
frame.bind("<Configure>", lambda event, canvas=canvas: onFrameConfigure(canvas))
populate(frame)
root.mainloop() |
Partager