QDateEdit'e tarih yüklemek

QDateEdit’ten secilen bir tarihi veritabanina ve o veritabanindan kaynaklanan tabloya sorunsuz kaydedebiliyorum. QDateEdit’te calendar aktif, tarih oradan seciliyor.
Tersini beceremiyorum. Yani örnegin yeniden düzenlemek .icin verileri veritabanindan tabloya yüklüyorum. Tabloda bir satirin üzerine 2 kere tiklayarak tüm bilgileri sayfadaki yerlerine aktariyorum. Sadece dateEdit adini verdigim QDateEdit’teki tarih güncellenmiyor.
Tablodan gelen tarih bilgisini bir variable icinde toplayabiliyorum. Tarihin bu variable icinde yyyy-mm-dd formatinda yattigini görüyorum. Variable’den QDateEdit’e tarihi aktaramiyorum.
QDateEdit tarihi dd.mm.yyyy olarak gösteriyor, yyyy-mm-dd formatinda veritabanina yolluyor.
Python’u hic bilmiyorum. Basit bir cözüm bulunabilirsa cok makbule gecer.

Kodlari yazman lazim.

Cevap icin cok tesekkür. Kodlara ne yazacagimi bilmedigim icin yardim istedim. Soruda yazdigim gibi Python’la code yazmayi henüz bilmiyorum. Ama ittire kaktira bu konuda su noktaya kadar geldim:

for item in ui.tblwFaturalar.selectedItems():
r = ui.tblwFaturalar.currentRow()
Bu yukaridaki iki satirla Fatiralar tablosundaku bir satira(hücreye) 2 click yaparak verileri iceri aliyor ve field1, field2… adli variable’lere yüklüyorum. Bunun hepsi calisiyor.
field7 = ui.tblwFatura.item(r,7).text()
Bu komutla da tarihi field7 adli variable’ye aktariyorum. print(field7) komutu ile de tarihin 2024-4-12 (örnegin) seklinde basariyla aktarildigini görüyorum.
field7 variable’sini dateEdit adini verdigim QDateEdit widgetine aktarmak icin ne yazmam gerektigini bilmiyorum. Tüm girdiler güncellenip görüntüleniyor, dateEdit güncellenmeden kaliyor.
Selamlar

Buradakı çözüme bir göz at
https://stackoverflow.com/questions/63375259/how-to-set-date-in-to-qdateedit-from-variable-or-text

verdiğim link senin kodunda böyle bir şey olmalı. eğer tarihin 2024-04-20 gibi bir formatdaysa, farklı formatda olursa kodda değiştirmen lazım

field7 = ui.tblwFatura.item(r,7).text()

qdate = QtCore.QDate.fromString(field7, "yyyy-MM-dd")

widget_date = QtWidgets.QDateEdit()
widget_date.setDisplayFormat("dd.MM.yyyy")

widget_date.setDate(qdate)

Cok tesekkür. Code calismiyor. Print ile qdate’i basarsam tarihin

PyQt5.QtCore.QDate(2005, 11, 10)

seklinde bu variable’ye girdigiini görüyorum. Ancak geri kalan code satirlarinda bir gelisme olmuyor. Dolayisiyla QDateEdit güncellenmiyor.

Sayfada 2 tane ayri QDateEdit widgeti var. Sebebi bu olabilir mi?
widget_date = QtWidgets.QDateEdit() deyince code hangi QDateEdit’i kastettigimizi nereden biliyor?



bende bir uygulama üzerinde çalışıyorum sizin sorunuz üzerine tarih kısmını dateedite çevirdim biraz uğraştırdı ama çift tıklama ile güncelleme işlemi yapmaya çalışırken tarih kısmını 3. resimdeki kodlarla dateedit e aktardım. asıl sizin sorun nasıl olduda veritabanındaki tarihin formatı yyyy-mm-dd olarak kayıt oluyor. kodları gönderseniz bir fikrimiz olabilirdi.

Zahmetleriniz icin cok cok tesekkürler. Maalesef hala calismadi. Replace herhalde bir harfi digeriyle degistir demek, Benim tarihte / yerine - oldugu icin asagidaki gibi yazdim. Try codu bir dene demek herhalde. Simdillik o kisma dokunmadim. Biraz okumak lazim. Code söyle uyarlandi:

    field7=field7.replace("-",".")
    print(field7)    # 2005.04.12 formatinda tarihi görüyorum
    ui.dateEdit.clear()
    ui.dateEdit.setDate(QtCore.QDate.fromString(field7, "yyyy-MM-dd"))

Gerisi calismiyor. Clear herhalde sil demek, dateEdit’in icindeki tarihin sadece gününü (dd) ve ardindaki noktayi siliyor.


Bilmek istediginiz diger konu:
dateEdit’te calendar’a tiklayarak secilen tarihi aagidaki iki satiri kullanarak insert…into ile veritabanina kaydediyorum:

  selected_date = ui.dateEdit.date()
  _dateEdit=selected_date.toString(QtCore.Qt.ISODate)

Calismasini code teknigi olarak bilmiyorum, sadece “dateEdit icindeki tarihi secilmis tarih olarak al ve bu secilmis tarihi ISO normuna uygun bir yazilisa ve stringe cevir ve dateEdit e aktar” seklindeki tercümesunden ne is yaptigini anliyorum,

soru üzerinden anlaşılacak bir konu değil, sizdeki py dosyalarını bizimde bilgisayarımızda çalıştırıp denememiz lazım. bu uygulamanın py dosyalarındaki kodları konuyu yanıtlarken </> simgesine basıp içeriye eklerseniz indirip deneme imkanımız olur.

ben uygulamayı yaparken tarih verisi lineEdit kısmından geliyordu ve elle yazdığım için dd/MM/yyyy olarak kayıt oldu veritabanına. dateedit yapınca / işaretlerini kaldırmak için replace kullandım.

siz kodları konuya eklemeye çalışın.

Size cok zahmet oldu. Kodlar daginik halde. Toplayip yollamaya calisacagim.