Python pyqt5 qtablewi̇deget sorunu

def listele(self):
    self.ui.urllist.setHorizontalHeaderLabels(('NO','URL','ZİYARETCİ SAYISI','KAYIT OLDUĞU GÜN'))

    veritabani.execute("SELECT * FROM linkler WHERE linkkullaniciadi = '"+kullaniciad+"'")
    linkler = veritabani.fetchall()
    self.ui.urllist.setRowCount(0)
    for satirIndeks, satirVeri in enumerate(linkler):
        self.ui.urllist.insertRow(satirIndeks)
        for sutunIndeks, sutunVeri in enumerate(satirVeri):
            self.ui.urllist.setItem(satirIndeks, sutunIndeks, QTableWidgetItem(str(sutunVeri)))

Sorun gözükmüyor ama veritabanımda bulunan veriyide çekmiyor resimler aşaığıda:

DeepinEkranGörüntüsü_alan-seç_20201120165149

yardım edebilecek kimse yok mu acaba?

abi bilsem yardım ederdim de ben de bu gün sql öğreneceğim bir proje için

teşekkür ederim allah razı olsun

Eğer öyle ise sorun tabloda değildir. Çünkü tabloya değer ekleme kısmında hatanız yok.

linkler’in değerini görebilir miyim?

Burayı bir f-string halinde tekrar yazıp deneyin:

veritabani.execute(f"SELECT * FROM linkler WHERE linkkullaniciadi = {kullaniciad}")

gene aynı denedim olmadı

linkler değişkeninin içeriği boş mu?

resim atmıştım en tepeye bakarsanız sevinirim

Evet, sadece veritabanı ve programın arayüzü gözüküyor. linkler'in içeriği gözükmüyor.

o veritabanı linkler tablosunun içi efendim konu dışında olan bir veritabanı neden koyayım ki

Elbette koymazsınız, ben öyle bir şey söylemedim zaten.
Amacım, veritabanından data çekebildiğinizden emin olmak. Çünkü konu başlığında QTableWidget ile ilgili sorun olduğunu belirtmişsiniz ama sorun orada değil.

DeepinEkranGörüntüsü_alan-seç_20201121094724

gene aynı efendim

printleyince böyle ekran geldi umarım bir çözüm buluruz

Datalar liste içerisinde tuple tipinde geliyor sanıyordum.

Bunu görmek çok faydalı oldu.

Problem şurada:

enumerate fonksiyonu her nesneye kendi numaralandırmasını ekliyor, ardından satirVeri’nin key’lerini o numaralara karşılık getiriyor. Yani şöyle bir sonuç oluyor:

0 id
1 link
2 linkkullaniciadi
3 linkziyaret
4 linkkayitgun

value’lara sıra gelmeden enumerate fonksiyonu görevini tamamlıyor. Dolayısıyla sadece key’ler tabloya ekleniyor.

Yapmanız gereken, enumerate fonksiyonuna sadece value’ları vermek.

for sutunIndeks, sutunVeri in enumerate(satirVeri.values()):

yani ilkinde kaldırayım mı?

Şu satırı:

for sutunIndeks, sutunVeri in enumerate(satirVeri):

Şununla değiştirin:

for sutunIndeks, sutunVeri in enumerate(satirVeri.values()):

denedim bu sefer hiç bir şey çıkmadı buyrun görüntüsü

DeepinEkranGörüntüsü_alan-seç_20201121094724

DeepinEkranGörüntüsü_alan-seç_20201121105002

buyur böyle bir çıktı aldım

Sütun sayısını belirtin:

self.ui.urllist.setColumnCount(4)

bu sefer böyle hata verdi bana