Pyqt5 QtableWidget

Merhabalar, QtableWidget’te üzerine tıkladığım itemin metnini almak istiyorum ama başaramadım, yardımcı olur musunuz?

    def sil(self):
        cursor.execute("SELECT * FROM uyeadi")
        secili=self.ui.tableWidget.selectedItems()
        cursor.execute("DELETE FROM uyeadi WHERE UyeAdı='{}'".format(secili))
        con.commit()
        self.ui.statusbar.showMessage("SİLİNDİ",self.süre)

Merhabalar. Eğer kodunuzun tamamını srunuza eklerseniz daha hızlı çözüm üretebiliriz. Hem cevap vermeden önce cevabımızın çözüm sağlayıp sağlamadığını kontrol etmiş oluruz.

from PyQt5.QtWidgets import *
from modül23 import *
import sqlite3
con=sqlite3.connect("silmedenemesi.db")
cursor=con.cursor()
cursor.execute("CREATE TABLE IF NOT EXISTS uyeadi (UyeAdı TEXT, TelefonNo TEXT, Eposta TEXT)")
con.commit()
class silmedenemesi(QMainWindow):
    süre=1000
    def listele(self):
        da = cursor.execute("SELECT * FROM uyeadi")
        self.ui.tableWidget.setRowCount(0)
        for row_number, row_data in enumerate(da):
            self.ui.tableWidget.insertRow(row_number)
            for column_number, data in enumerate(row_data):
                self.ui.tableWidget.setItem(row_number, column_number, QtWidgets.QTableWidgetItem(str(data)))
    def kaydet(self):
        a=self.ui.lineEdit_kitap.text()
        b=self.ui.lineEdit_yazar.text()
        c=self.ui.lineEdit_yayin.text()
        cursor.execute("INSERT INTO uyeadi (UyeAdı, TelefonNo, Eposta) VALUES (?,?,?)",(a, b, c))
        con.commit()
        self.ui.statusbar.showMessage("Kitap Listenize Başarılı Bir Şekilde Eklenmiştir", self.süre)
    def sil(self):
        cursor.execute("SELECT * FROM uyeadi")
        secili=self.ui.tableWidget.selectedItems()
        cursor.execute("DELETE FROM uyeadi WHERE UyeAdı='{}'".format(secili))
        con.commit()
        self.ui.statusbar.showMessage("SİLİNDİ",self.süre)

    def __init__(self):
        super().__init__()
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        self.ui.pushButton_listele.clicked.connect(self.listele)
        self.ui.pushButton_kaydet.clicked.connect(self.kaydet)
        self.ui.pushButton_sil.clicked.connect(self.sil)


uygulama=QApplication([])
pencere=silmedenemesi()
pencere.show()
uygulama.exec()

bi de pyqt5 kodları var qt designer ile tasarlanmış, onları da atayım mı

1 Beğeni

Kodu çalıştırabilmemiz açısından faydalı olur.

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'senemesi.ui'
#
# Created by: PyQt5 UI code generator 5.13.2
#
# WARNING! All changes made in this file will be lost!


from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(774, 566)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.tableWidget = QtWidgets.QTableWidget(self.centralwidget)
        self.tableWidget.setGeometry(QtCore.QRect(0, 0, 591, 151))
        self.tableWidget.setObjectName("tableWidget")
        self.tableWidget.setColumnCount(3)
        self.tableWidget.setRowCount(0)
        item = QtWidgets.QTableWidgetItem()
        item.setTextAlignment(QtCore.Qt.AlignCenter)
        self.tableWidget.setHorizontalHeaderItem(0, item)
        item = QtWidgets.QTableWidgetItem()
        item.setTextAlignment(QtCore.Qt.AlignCenter)
        self.tableWidget.setHorizontalHeaderItem(1, item)
        item = QtWidgets.QTableWidgetItem()
        item.setTextAlignment(QtCore.Qt.AlignCenter)
        self.tableWidget.setHorizontalHeaderItem(2, item)
        self.tableWidget.horizontalHeader().setDefaultSectionSize(196)
        self.lineEdit_kitap = QtWidgets.QLineEdit(self.centralwidget)
        self.lineEdit_kitap.setGeometry(QtCore.QRect(0, 170, 591, 41))
        self.lineEdit_kitap.setObjectName("lineEdit_kitap")
        self.lineEdit_yazar = QtWidgets.QLineEdit(self.centralwidget)
        self.lineEdit_yazar.setGeometry(QtCore.QRect(0, 230, 591, 41))
        self.lineEdit_yazar.setObjectName("lineEdit_yazar")
        self.lineEdit_yayin = QtWidgets.QLineEdit(self.centralwidget)
        self.lineEdit_yayin.setGeometry(QtCore.QRect(0, 290, 591, 41))
        self.lineEdit_yayin.setObjectName("lineEdit_yayin")
        self.pushButton_kaydet = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton_kaydet.setGeometry(QtCore.QRect(10, 340, 131, 131))
        self.pushButton_kaydet.setObjectName("pushButton_kaydet")
        self.pushButton_sil = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton_sil.setGeometry(QtCore.QRect(424, 340, 151, 131))
        self.pushButton_sil.setObjectName("pushButton_sil")
        self.pushButton_listele = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton_listele.setGeometry(QtCore.QRect(160, 340, 221, 131))
        self.pushButton_listele.setObjectName("pushButton_listele")
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 774, 22))
        self.menubar.setObjectName("menubar")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        item = self.tableWidget.horizontalHeaderItem(0)
        item.setText(_translate("MainWindow", "Üye Adı"))
        item = self.tableWidget.horizontalHeaderItem(1)
        item.setText(_translate("MainWindow", "Telefon No"))
        item = self.tableWidget.horizontalHeaderItem(2)
        item.setText(_translate("MainWindow", "E Posta Adresi"))
        self.lineEdit_kitap.setPlaceholderText(_translate("MainWindow", "Kitap Adı"))
        self.lineEdit_yazar.setPlaceholderText(_translate("MainWindow", "Yazar Adı"))
        self.lineEdit_yayin.setPlaceholderText(_translate("MainWindow", "Yayın Evi"))
        self.pushButton_kaydet.setText(_translate("MainWindow", "Kaydet"))
        self.pushButton_sil.setText(_translate("MainWindow", "SİL"))
        self.pushButton_listele.setText(_translate("MainWindow", "Listele"))


if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    MainWindow = QtWidgets.QMainWindow()
    ui = Ui_MainWindow()
    ui.setupUi(MainWindow)
    MainWindow.show()
    sys.exit(app.exec_())
1 Beğeni

modül23 olarak kaydederseniz bu dosyayı hata almazsınız

Evet onu farkettim :slightly_smiling_face:

Kodlarınızı çok sıkışık yazmışsınız. Kodun okunaklılığı önemlidir, buna dikkat etmenizi tavsiye ederim. Değişken isimlendirmeleri de anlamlı olmalıdır. Pythonun topluluk tarafından kabul edilmiş isimlendirme kuralları var, bakmanızı tavsiye ederim.

Tamamdır, teşekkür ederim bilgilendirme yaptığınız için

Burada seçili, seçilen bütün elemanların bir listesi oluyor. Bu listenin ilk elemanının içerdiği yazıya erişmek için bunu kullanabilirsiniz:

secili[0].text()

Çok teşekkür ederim Ekrem Bey, Allah razı olsun gece gece vakit ayırıp çözüm için yardımcı oldunuz ve çözdünüz. Elinize sağlık, işe yaradı. (:

1 Beğeni