Entry'e yazılan yazıyı hafızada tutmak

Merhaba, bir entry üzerine yazı yazıyorum sonrasında programı kapatıp açtıgımda entry bölümü sıfırlanıyor mantıken ama ben en son yazdıgım yazıyı hafızasında tutmasını ve programı tekrar açtıgımda en son yazdıgım yazıyı tekrar entry üzerinde göstermesini istiyorum bunu nasıl yapabilirim acaba yardım ederseniz sevinirim.

KOD;

from tkinter import * 
from tkinter import ttk 

  
root = Tk() 
  

root.geometry('200x100') 
  

input_text = StringVar() 
  
entry1 = ttk.Entry(root, textvariable = input_text, justify = CENTER) 
  

entry1.focus_force() 
entry1.pack(side = TOP, ipadx = 30, ipady = 6) 
  
root.mainloop() 

Merhaba.

Bu kodu inceleyin anlamadığınız bir yer olursa sorabilirsiniz:

from tkinter import * 
from tkinter import ttk 

def on_closing():
    set_text()
    root.destroy()

def get_text():
    with open("entry.txt", "a+") as f:
        f.seek(0)
        input_text.set(f.read())

def set_text():
    with open("entry.txt", "w") as f:
        f.write(input_text.get())

root = Tk() 
root.protocol("WM_DELETE_WINDOW", on_closing)

root.geometry('200x100') 
  

input_text = StringVar() 

entry1 = ttk.Entry(root, textvariable = input_text, justify = CENTER) 

get_text()

entry1.focus_force() 
entry1.pack(side = TOP, ipadx = 30, ipady = 6) 

root.mainloop() 

bu tarz birşeyi text dosyası kullanmadan yapmak mümkün degil galiba

Programı açıp kapadıktan sonra bazı verileri geri almak istiyorsunuz, diske yazmanız en kolayı. Eğer kullanıcı tarafından görülmesini istemiyorsanız işletim sistemlerinin uygulamaların bazı bilgileri kaydetmesi için ayırdığı klasörleri kullanabilirsiniz (mesela Windows’da AppData).

Tabii dosyanın uzantısı önemli değil, uzantısız bile kalabilir. Yani text dosyası şart değil.

Kapanan (terminate, exit) program butun hafizasini birakir, bu kapanmanin tanimlarindan biri.

1 Beğeni

aslında sadece program üzerinden düzenlenmesini istiyorum text dosyası oluşturdugumuzda text dosyası üzerindende müdahele edilebiliyor bunu tek taraflıya nasıl çekebilirim

Bunun size zararı ne ki? Kullanıcının diskteki dosyayı bilerek değiştirmesi size nasıl bir problem doğuruyor?

aslında haklısınız evet bi sorun çıkartmaz sadece merak etmiştim. bu entryden bir tane daha oluşturdum ama düzgün çalışmıyor bi bakarmısınız rica etsem.

from tkinter import * 
from tkinter import ttk 

def on_closing():
    set_text()
    root.destroy()

def get_text():
    with open("entry.txt", "a+") as f:
        f.seek(0)
        input_text.set(f.read())
        input_text2.set('\n' + f.read())

def set_text():
    with open("entry.txt", "w") as f:
        f.write(input_text.get())
        f.write(input_text2.get())

root = Tk() 
root.protocol("WM_DELETE_WINDOW", on_closing)

root.geometry('200x100') 
  

input_text = StringVar()
input_text2 = StringVar() 

entry1 = ttk.Entry(root, textvariable = input_text, justify = CENTER)

entry2 = ttk.Entry(root, textvariable = input_text2, justify = CENTER) 

get_text()

entry1.focus_force() 
entry1.pack(side = TOP, ipadx = 30, ipady = 6)
entry2.pack(side = BOTTOM, ipadx = 30, ipady = 6) 

root.mainloop() 

İki entry’nin içeriğini de aynı dosyaya yazıyorsunuz, ya farklı dosyalar kullanacaksınız ya da bir şekilde tek dosya içerisindeki yazıları ayıracaksınız. Eğer çok fazla entry olacaksa tek dosya kullanmak daha iyi olur.

tek dosya üzerinde yapmak istedim ama tek satır olarak algılıyor hepsini bi satıra yazıyor

Yazarken aralara "\n" koyun, şuan okuma şekliniz de yanlış ama.

Entry sayısı artacaksa bunu bir döngü haline getirip input text’lerini bir listede tutmanız lazım.

Eğer kullanıcının PC’sinde olmasını istemiyorsanız bulut tabanlı veri sistemi kullanabilirsiniz.