IndexError: tuple index out of range

Kodlarınızı düzenledim. Gerekli yerlere açıklamalar ekledim. Kodlar çalışıyor, veritabanında değişiklik yapılabiliyor artık. Bir bakın isterseniz.

#!/usr/bin/python3.8
# -*- coding: utf-8 -*-

from arayuz import Ui_MainWindow as arayuz
from PyQt5.QtWidgets import QMainWindow,QApplication,QFileDialog
from PyQt5 import QtWidgets
import os
import sqlite3

class goster_veritabani(QMainWindow):
    def __init__(self):
        super().__init__()
        self.tablo = []
        self.columns = []
        self.tablo_adi = None
        self.imlec = None
        self.baglanti = None
        self.ac_pencere()
        
    def dosya_sec(self):
        self.file_dialog = QFileDialog(self)
        self.open_file = self.file_dialog.getOpenFileName(
            self,
            "Dosya Aç",
            os.getenv("HOME")
        )
        return self.open_file[0]
    
    def veri_yukle(self):
        dosya = self.dosya_sec()
        self.baglanti = sqlite3.connect(dosya)
        self.imlec = self.baglanti.cursor()
        self.imlec.execute("SELECT name FROM sqlite_master")
        self.tablo_adi = self.imlec.fetchall()
        self.imlec.execute(
            "SELECT * FROM {ta}".format(ta=self.tablo_adi[0][0])
        )
        veri = self.imlec.fetchall()
        # Orijinal veriler tabloda tutulacak, veriler üzerinde değişiklik
        # yapılırsa bu tablo karşılaştırma için kullanılacak.
        # Siz verileri parcacik.text() diye çektiğiniz için ben bütün verileri
        # string verisine dönüştürdüm.
        self.tablo = [[str(j) for j in i] for i in veri]
        # Sütun ismi için.
        self.columns = [i[0] for i in self.imlec.description]
        for satir_say, satir_veri in enumerate(veri):
            for sutun_say, veri in enumerate(satir_veri):
                self.ui.tablo.setItem(
                    satir_say,
                    sutun_say,
                    QtWidgets.QTableWidgetItem(str(veri))
                )
        
    def veri_isle(self, veriler):
        for orijinal, editted in zip(self.tablo, veriler):  # tablo ile GUI'deki veriler karşılaştırılacak.      
            if orijinal != editted:  # Eğer tablonun satır verisi, gui'deki satır verisine eşit değilse
                for index, (i, j) in enumerate(zip(orijinal, editted)):  # Satır verisindeki her bir sütun için
                    if i != j:  # Sütun değerlerinin aynı olup olmadığına bakılacak. Eğer aynı değilse,
                        # Aşağıdaki ifade ile tablo verisi değiştirilecek.
                        sorgu = f"UPDATE {self.tablo_adi[0][0]} SET " \
                            f"{self.columns[index]} = ? " \
                            f"WHERE {self.columns[1]} = ?"
                        self.imlec.execute(sorgu, (j, orijinal[1]))
        # Değişiklikleri işleme sokuyoruz.
        self.baglanti.commit()
        # Veritabanını kapatıyoruz.
        self.baglanti.close()
                
    def veri_cek(self):
        veriler = []
        for satir in range(len(self.tablo)):  # Tablodaki satır sayısı kadar
            veri_satir = []  # Satır oluştur
            for sutun in range(len(self.tablo[0])):  # Bir satırdaki sütun sayısı kadar
                parcacik = self.ui.tablo.item(satir, sutun)  # verileri al
                veri_satir.append(parcacik.text()) # Alınan verileri satır verisine ekle
            veriler.append(veri_satir)  # Satır verisini de verilere ekle.
        self.veri_isle(veriler)  # veri_isle fonksiyonuna verileri argüman olarak ver.
        
    def baglantilar(self):
        self.ui.buton_yukle.clicked.connect(self.veri_yukle)
        self.ui.buton_degistir.clicked.connect(self.veri_cek)
        
    def ac_pencere(self):
        self.ui = arayuz()
        self.ui.setupUi(self)
        self.baglantilar()

if __name__ == "__main__":
    uygulama = QApplication([])
    ana_pencere = goster_veritabani()
    ana_pencere.show()
    uygulama.exec_()

Sizin SQL ifadenizde bir hata vardı, ifadenin olması gereken hali şöyle:

f"UPDATE {tablo_ismi} SET {sutun_ismi} = ? WHERE {sutun_ismi} = ?"

WHERE'den sonraki sütun ismi, illa ki SET ile değiştirilecek sütun olmak zorunda değil, ama olabilir de.

1 Beğeni