Nov-27-2018, 07:57 AM
This one works for me on Windows Vista, Python 3.4
from tkinter import * from tkinter.ttk import Notebook import tkinter.ttk as ttk import time #window root=Tk() root.geometry('450x350') root.title('test') #variables ent_releves1=StringVar() ent_releves2=StringVar() file1 = 'temp1.txt' file2 = 'temp2.txt' #Functions: def archiver(): archive_monitoring={"date" : time.strftime('%d/%m/%y', time.localtime()), "releves_mesure1": ent_releves1.get(), "releves_mesure2": ent_releves2.get(), } if (ent_releves1.get() !="" ) : mon_fichier1 = open(file1, "r") text1 = mon_fichier1.read() mon_fichier1.close() textInsert1=str(archive_monitoring["date"])+"\t" +str(archive_monitoring["releves_mesure1"])+"\n" fileW1 = open(file1, "w") fileW1.write(textInsert1 + text1) fileW1.close() if (ent_releves2.get() !="" ) : mon_fichier2 = open(file2, "r") text2 = mon_fichier2.read() mon_fichier2.close() textInsert2=str(archive_monitoring["date"])+"\t" +str(archive_monitoring["releves_mesure2"])+"\n" fileW2 = open(file2, "w") fileW2.write(textInsert2 + text2) fileW2.close() container=ttk.Notebook(root,width=450,height=350) monitoring=Frame(container,bg='powder blue') container.add(monitoring,text='monitor data') releves=Frame(container,bg='powder blue') container.add(releves,text='releves') s= Scrollbar(releves) T= Text(releves,bg='powder blue',width=450,height=350,font=('arial',14,'bold'),pady=25) s.pack(side=RIGHT, fill=Y) T.pack(side=LEFT, fill=Y) s.config(command=T.yview) T.config(yscrollcommand=s.set) def affichage_update(): with open(file1,"r") as monitor1, open(file2,"r") as monitor2: T.delete('1.0', 'end') while True: line1 = monitor1.readline() if len(line1) == 0: break line1 = line1.strip().split() line2 = monitor2.readline() line2 = line2.strip().split() #T.insert(END, f'{line1[0]:15}\t {line1[1]:10}\t\t {line2[1]:10}\n') T.insert(END, '{:15}\t {:10}\t\t {:10}\n'.format(line1[0], line1[1], line2[1])) #T.update_idletasks() T.after(500,affichage_update) lbf1 = LabelFrame(monitoring, text="Lecture Monitor 1",padx=10, pady=10) lbf1.pack(side=LEFT,padx=10, pady=10,anchor=NE) entry_lbf1= Entry(lbf1,textvariable=ent_releves1) entry_lbf1.pack(pady=5) lbf2 = LabelFrame(monitoring, text="Lecture Monitor 2",padx=10, pady=10) lbf2.pack(side=LEFT,padx=10, pady=10,anchor=NW) entry_lbf2= Entry(lbf2,textvariable=ent_releves2) entry_lbf2.pack(pady=5) bt_archiver=Button(monitoring,text='Archiver',command=archiver) bt_archiver.place(x=40,y=120) generalites_top=Frame(releves,bg='powder blue',width=450) generalites_top.pack(side=TOP,fill=X) generalites_bottom=Frame(releves,bg='powder blue') generalites_bottom.pack(side=BOTTOM) head_axe_loc35L = ['Date', 'Monitor 1', 'Monitor 2'] #lb_date=Label(generalites_top,text=f'{head_axe_loc35L[0]:15}',bg='powder blue',font=('arial',12,'bold')) lb_date=Label(generalites_top,text='{:15}'.format(head_axe_loc35L[0]),bg='powder blue',font=('arial',12,'bold')) lb_date.pack(side=LEFT,padx=5,anchor=NW) #lb_monitor1=Label(generalites_top,text=f'{head_axe_loc35L[1]:10}',bg='powder blue',font=('arial',12,'bold')) lb_monitor1=Label(generalites_top,text='{:10}'.format(head_axe_loc35L[1]),bg='powder blue',font=('arial',12,'bold')) lb_monitor1.pack( side=LEFT) #lb_monitor2=Label(generalites_top,text=f'{head_axe_loc35L[2]:10}',bg='powder blue',font=('arial',12,'bold')) lb_monitor2=Label(generalites_top,text='{:10}'.format(head_axe_loc35L[2]), bg='powder blue',font=('arial',12,'bold')) lb_monitor2.pack(padx=70, side=LEFT) affichage_update() container.pack(expand=1, fill='both', padx=5, pady=5) root.mainloop()Replace file1 and file2 with your own