Python Forum
[Tkinter] update the content of Text widget
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Tkinter] update the content of Text widget
#8
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
Reply


Messages In This Thread
update the content of Text widget - by atlass218 - Nov-19-2018, 09:05 PM
RE: update the content of Text widget - by woooee - Nov-19-2018, 09:31 PM
RE: update the content of Text widget - by jfong - Nov-27-2018, 02:34 AM
RE: update the content of Text widget - by jfong - Nov-27-2018, 07:57 AM
RE: update the content of Text widget - by jfong - Nov-28-2018, 03:17 AM

Possibly Related Threads…
Thread Author Replies Views Last Post
  update text variable on label with keypress knoxvilles_joker 5 5,351 May-31-2024, 02:09 PM
Last Post: menator01
  [Tkinter] The Text in the Label widget Tkinter cuts off the Long text in the view malmustafa 4 5,418 Jun-26-2022, 06:26 PM
Last Post: menator01
  How to instantly update the plot by getting values from a Scale widget? OLE 20 6,804 May-18-2022, 02:35 AM
Last Post: OLE
  [Tkinter] Make my button text update? Skata100 1 2,131 Aug-07-2021, 05:37 AM
Last Post: deanhystad
  [Tkinter] Text widget inert mode on and off rfresh737 5 4,083 Apr-19-2021, 02:18 PM
Last Post: joe_momma
  Line numbers in Text widget rfresh737 3 5,661 Apr-15-2021, 12:30 PM
Last Post: rfresh737
  tkinter text widget word wrap position chrisdb 6 7,795 Mar-18-2021, 03:55 PM
Last Post: chrisdb
  [Tkinter] Get the last entry in my text widget Pedroski55 3 6,635 Jul-13-2020, 10:34 PM
Last Post: Pedroski55
  How to place global tk text widget in class or on canvas puje 1 2,421 Jul-04-2020, 09:25 AM
Last Post: deanhystad
  [Tkinter] how to update label text from list Roshan 8 5,670 Apr-25-2020, 08:04 AM
Last Post: Roshan

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020