Entry tarih formatı

Hangi programinda?​​

Pythonda yapmakta oldugum gui programi

Kodları görmeden kimse yavaşlama sorununun neyden kaynaklandığını bilemez ve size yardımcı olamaz diye düşünüyorum.

Ben de “oyle bir program goremiyoruz” demek zorunda kalacaktim, ayni seye gelmis :slight_smile:

Mrb arkadaşlar Yukarıdaki kodları editledim otomatik olarak dateEntry oluşturmak istediğimde dediğim gibi sistem yavaşlıyor…

O yine iyiymis, bende hic calismiyor:

Traceback (most recent call last):
  File "a.py", line 233, in <module>
    root=Tk()
NameError: name 'Tk' is not defined

@cekirdek

from tkinter import * yazmayı unutmuşsunuz. Bir de yanılmıyorsam tkcalendar isminde bir modül var, onun da yüklenmesi lazım.

Onu yükledik diyelim. Program açıldı. Şimdi ne yapmak gerekiyor?

–KAYIT-- menü düğmesine tıklayabiliyoruz. Açılan alt menüdeki Öğrenci Kaydı veya Personel Kaydı düğmelerine tıklayınca yeni toplevel widgetleri açılıyor.

Mesela Öğrenci Kaydı düğmesine tıkladım. Bilgileri girdim, Hesapla düğmesine tıkladım, neden aşağıdaki gibi bir uyarı verdi?

Haydi orayı pass ile atlayayım dedim. Hesapla düğmesine tekrar bastım, bir şey olmadı.

Şimdi asıl sorum şu; otomatik olarak DateEntry'yi nerede nasıl oluşturmaya çalışıyorsunuz?

tarih değerini (. ) olarak girdiğinde hatayı verir.( / )kullanırsan hata vermez. Ayrıca 2.kez hesapla tıkladığımda yanlış tarih girildiği için hata mesajı veriyor bende sııntı yolk yani. Taksit tarihlerini dataentry olarak oluşturmaya çalışıyorum. Tşkler…

Sanırım sorun DateEntry kullanmaya çalıştığınız için oluyor. DateEntry’yi kaldırdım yerine Entry koydum donma sorunu ortadan kalktı.

zaten dataentry kullanmayacağım. Denemek maksadıyla oluşturmuştum. Bu yavaşlama normal midir merak ettim…

Yani DateEntry widgeti TkInter’in kendi widgeti değil. Ve Entry widgeti DateEntry widgetine göre biraz daha ayrıntısı az olan, ‘hafif’ bir widget. Aynı anda 10-15 tane oluşturmaya çalışınca donuyor demek ki.

Yani taksit sayısı az olduğu zaman, DateEntry widgeti donma sorunu oluşturmaz diye düşünüyorum.

tşk ederim, şimdilik son bri sorum daha ver: Mesela 10 tane Entry ayrı ayrı e1,e2… şeklinde tanımlasak mı hafıza daha az yer kaplar yoksa liste değişkenine depolayıp kullanmak mı?
bu arada kusura bakma çok soru soruyorum ama başka ortamda boş muhabbet etmekten iyidir.

İnanın hangi yöntemin hafızada daha az yer kapladığı konusunda bir bilgim yok. Otomatik olarak çok sayıda widget oluşturmanın pratik yolu bir for döngüsü kullanmaktır. Siz çoklu widgetler oluşturmak isterken, widgetlerin isimleri farklı olsun diye, exec kullanmışsınız. Ama şöyle de yapılabilirdi:

def f():
    entries = []
    for i in range(10):
        e = Entry(master)
        e.pack()
        entries.append(e)
    return entries


e = f()
# e[0], e[1], e[2], ... e[9]

Bir de şöyle yapabilirsiniz:

def f():
    for i in range(10):
        e = Entry(master)
        e.pack()
        yield e


e1, e2, e3, ... e10 = f()

Siz bilirsiniz. Nasıl isterseniz öyle yapın.

Merhaba arkadaşlar yazdığım programda tarih alanı olsun ve o günün tarihi yazsın istiyırum visual code üzerinden python 3.11 kullanıyorum

from tkinter import *
from datetime import datetime

pencere = Tk()
pencere.geometry("300x100+200+200")

tarih = Label(pencere, text=f"Tarih : {datetime.now().strftime('%d/%m/%Y')}")
tarih.pack()

pencere.mainloop()