PyQT5 TableWidget'tan Boş row Nasıl Silinir?

Merhaba arkadaşlar.

Buraya lineEditlerden üzerinden item eklerken, bir bug oluyor ve en üste boş bir row ekleniyor. Eğer row’daki column’lar boşsa silinsin istiyorum. Nasıl yapabilirim?

Denediğim yöntem:

        liste = []
        for row in enumerate(range(self.arayuz.satisVeKasa_alisverisListesiListBox.rowCount())):
            alt_liste = []
            for col in enumerate(range(self.arayuz.satisVeKasa_alisverisListesiListBox.columnCount())):
                if self.arayuz.satisVeKasa_alisverisListesiListBox.item(row[0], col[0]).text() == "":
                    pass # Buraya ne yapacağım, bilemedim.
                else:
                    alt_liste.append(self.arayuz.satisVeKasa_alisverisListesiListBox.item(row[0], col[0]).text())
                
            liste.append(alt_liste)

Bakmak isteyebilirsiniz.

1 Beğeni

Hucrelerdeki veriler veritabanindan mi geliyor yoksa manuel olarak siz kendiniz mi girdiniz?

2 Beğeni

Hocam üstte lineEdit var, ben oradan giriyorum.

Yapmaya calistiginiz islem zor degil. Bir bug olustugunu sanmiyorum. Muhtemelen kucuk bir kod parcaciginda hata var. Ilgili python dosyasini ve ayri ise tasarim dosyasini paylasir misiniz?

2 Beğeni

Bu kodlar ile ekleniyor hocam:

urunAdi = self.arayuz.satisVeKasa_barkodsuzUrunEkleme_urunAdiTextBox.text()

        urunAdetGram = self.arayuz.satisVeKasa_barkodsuzUrunEkleme_adetGramTextBox.text()

        urunFiyat = self.arayuz.satisVeKasa_barkodsuzUrunEkleme_fiyatTextBox.text()

       

        if urunAdi == "" or urunAdetGram == "" or urunFiyat == "":

            QMessageBox.warning(self, "Hata", "Lütfen tüm alanları doldurun.")

        else:

            self.row += 1

            self.arayuz.satisVeKasa_alisverisListesiListBox.setRowCount(self.row)

       

            gun = date.today()

            tarih = gun.strftime("%d/%m/%Y")

       

            self.row = self.arayuz.satisVeKasa_alisverisListesiListBox.rowCount()

            self.arayuz.satisVeKasa_alisverisListesiListBox.insertRow(self.row)

       

            self.arayuz.satisVeKasa_alisverisListesiListBox.setItem(self.row, 0, QTableWidgetItem("Yok"))

            self.arayuz.satisVeKasa_alisverisListesiListBox.setItem(self.row, 1, QTableWidgetItem(urunAdi))

            self.arayuz.satisVeKasa_alisverisListesiListBox.setItem(self.row, 2, QTableWidgetItem("Yok"))

            self.arayuz.satisVeKasa_alisverisListesiListBox.setItem(self.row, 3, QTableWidgetItem("Yok"))

            self.arayuz.satisVeKasa_alisverisListesiListBox.setItem(self.row, 4, QTableWidgetItem(urunAdetGram))

            self.arayuz.satisVeKasa_alisverisListesiListBox.setItem(self.row, 5, QTableWidgetItem(str(urunFiyat)))

            self.arayuz.satisVeKasa_alisverisListesiListBox.setItem(self.row, 6, QTableWidgetItem(tarih))

           

            self.arayuz.satisVeKasa_toplamTutarTextBox.setText(str(int(self.arayuz.satisVeKasa_toplamTutarTextBox.text()) + int(urunFiyat)))

            self.arayuz.satisVeKasa_barkodsuzUrunEkleme_fiyatTextBox.clear()

            self.arayuz.satisVeKasa_barkodsuzUrunEkleme_urunAdiTextBox.clear()

            self.arayuz.satisVeKasa_barkodsuzUrunEkleme_adetGramTextBox.clear()

            self.formYukle()

Özür dilerim karışıksa.

Sanirim sorun burada. Satir sayisini belirlemis(setRowCount) ve daha sonra yeni satirlar(insertRow) eklemissiniz. Alintiladigim 2 satiri silip dener misiniz?

1 Beğeni

Vallahi düzeldi hocam :smiley: Onu ne zaman eklemişim, neden eklemişim hiç farkında değilim. Çok teşekkürler <3

1 Beğeni

Rica ederim, iyi calismalar :slightly_smiling_face:

1 Beğeni