PyQt5 TableWidget üzerinden Kayıt aramak ve güncellemek

class veri_cekme(QMainWindow):
    def __init__(self):
        super().__init__()
        self.ui=Ui_MainWindow()
        self.ui.setupUi(self)

        self.connect = sqlite3.connect('C:\python_veri_cekme_veritabani\python_job_veritabani.db')
        self.im = self.connect.cursor()
        veritabani = """CREATE TABLE IF NOT EXISTS PythonJob(id INTEGER PRIMARY KEY AUTOINCREMENT,Uzmanlık TEXT,Sirket TEXT,Ulke TEXT,Tarih TEXT)"""
        # im.execute("""DROP TABLE PythonJob""")
        self.im.execute(veritabani)

        self.ui.tableWidget.itemSelectionChanged.connect(self.doldur)


        self.ui.pushButton.clicked.connect(self.table_calistir)

        #self.calistirilacak_kod()

    def calistirilacak_kod(self):
        url = "https://www.python.org/jobs"


        r = requests.get(url)
        soup = BeautifulSoup(r.content,"lxml")
        pages = len(soup.find_all("ul",attrs={"class":"pagination"})[0].find_all("li")) - 2
        totalJobs = 0
        for pageNumber in range(1,pages + 1):
            pageRequest = requests.get("https://www.python.org/jobs/?page=" + str(pageNumber))
            pageSource = BeautifulSoup(pageRequest.content,"lxml")
            jobs = pageSource.find("div",attrs={"class":"row"}).ol.find_all("li")
            for job in jobs:
                name = job.h2.find("a").text
                location = job.find("span",attrs={"class":"listing-location"}).text
                company = job.find("span",attrs={"class":"listing-company-name"}).br.next.strip()
                publish_time = job.find("time").text
                totalJobs += 1
                print(name,company,location,publish_time,sep="\n")
                im.execute("""INSERT INTO PythonJob(Uzmanlık,Sirket,Ulke,Tarih) VALUES (?,?,?,?)""", [name,company,location,publish_time])
                connect.commit()

                print("-"*60)

        print("Toplam {} iş bulundu.".format(totalJobs))

    def doldur(self):
        try:
            secili=self.ui.tableWidget.selectedItems()

            self.ui.lineEdit.setText(secili[0].text())
            self.ui.lineEdit_2.setText(secili[1].text())
            self.ui.lineEdit_3.setText(secili[2].text())
            self.ui.lineEdit_4.setText(secili[3].text())

            if secili==[]:
                return

        except Exception as Hata:
            self.ui.statusbar.showMessage("Hata var",2000)
    def table_calistir(self):
        self.ui.tableWidget.clear()
        self.ui.tableWidget.setHorizontalHeaderLabels(('Uzmanlık','Sirket','Ulke','Tarih'))
        self.ui.tableWidget.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
        self.ui.tableWidget.setSelectionMode(QAbstractItemView.SingleSelection)
        self.ui.tableWidget.setAlternatingRowColors(True)

        pallete = self.ui.tableWidget.palette()
        pallete.setColor(QPalette.Background, QColor(60, 60, 60))
        pallete.setColor(QPalette.AlternateBase, QColor("darkkhaki"))
        pallete.setColor(QPalette.Base, QColor('#bbb'))

        self.ui.tableWidget.setPalette(pallete)

        sec=self.im.execute("SELECT Uzmanlık,Sirket,Ulke,Tarih FROM PythonJob")
        okuma=sec.fetchall()

        self.ui.tableWidget.setRowCount(0)
        for row_number, row_data in enumerate(okuma):
            self.ui.tableWidget.insertRow(row_number)
            for columb_number, data in enumerate(row_data):
                self.ui.tableWidget.setItem(row_number, columb_number, QTableWidgetItem(str(data)))

arkadaşlar kodlarım bu şekilde bir sorunum var

şöyle bir ekranım var


Bir siteden verileri çekip ardından veritabanına kaydettim
Sonra bunları bir tabloda gösterdim

Bu ekranda bir veri güncellemek istediğim zaman direk veritabanından güncellemesini istemiyorum
direk tabloda güncellesin istiyorum
Verileri direk line edit alanına da getiremedim

1 veya 2 sıradaki indexlere tıkladığım zaman bütün verileri line edit bölümüne getirsin
Bu getirdiğim veriler üzerinden güncelleme yapılsın ama sadece tablo üzerinde veritabanında değil
İstediğim zamanda kayıt arayabileyim

Yardımlarınız için şimdiden teşekkür ederim

pyqt5 le uğraşıyorum bende yeni yeni ama kaynak mlsfki çok az ve eski umarım sorunuza bir cevap bulabilirsiniz bende merak ettim

        self.ui.lineEdit.textChanged.connect(self.ara)
        self.ui.lineEdit_4.textChanged.connect(self.ara1)
        self.ui.lineEdit_3.textChanged.connect(self.ara2)
        self.ui.lineEdit_2.textChanged.connect(self.ara3)
    def ara3(self,tarih):
        try:
            col=3
            rows=self.ui.tableWidget.rowCount()
            for row in range(rows):
                item=self.ui.tableWidget.item(row,col)
                if item is not None:
                    if tarih.lower() in item.text().lower():
                        self.ui.tableWidget.showRow(row)
                    else:
                        self.ui.tableWidget.hideRow(row)
        except Exception as Hata:
            print("hata")

    def ara2(self,ulke):
        try:
            col=2
            rows=self.ui.tableWidget.rowCount()
            for row in range(rows):
                item=self.ui.tableWidget.item(row,col)
                if item is not None:
                    if ulke.lower() in item.text().lower():
                        self.ui.tableWidget.showRow(row)
                    else:
                        self.ui.tableWidget.hideRow(row)
        except Exception as Hata:
            print("hata")


    def ara1(self,sirket):
        try:
            col=1
            rows=self.ui.tableWidget.rowCount()
            for row in range(rows):
                item=self.ui.tableWidget.item(row,col)
                if item is not None:
                    if sirket.lower() in item.text().lower():
                        self.ui.tableWidget.showRow(row)
                    else:
                        self.ui.tableWidget.hideRow(row)
        except Exception as Hata:
            print("hata")

    def ara(self,uzmanlik):

        try:
            col=0
            rows=self.ui.tableWidget.rowCount()
            for row in range(rows):
                item=self.ui.tableWidget.item(row,col)
                if item is not None:
                    if uzmanlik.lower() in item.text().lower():
                        self.ui.tableWidget.showRow(row)
                    else:
                        self.ui.tableWidget.hideRow(row)
        except Exception as Hata:
            print("hata")

Böyle bir şeyler yaptım ve oldu

1 Beğeni

elinize sağlık hocam