Merhaba. Qt Designer’da tasarladığım küçük bir uygulama var. PyQt yoluyla işlevselleştirmeye uğraşıyorum ancak genel olarak etkinsizleştirdiğim çift tıklamayla tablo düzenleme özelliğini bir düğme aracılığıyla yeniden etkin duruma getiremedeim. Bunun yanında SqLite ile bağlantılama hakkında da yardımcı olabilecek olan olursa sevinirim.
İlgili kod bu şekildedir:
import sys
from PyQt5 import QtWidgets, QtGui, QtCore
from acustu import Ui_AnaPencere
class Uygulama(QtWidgets.QMainWindow):
def __init__(self):
super(Uygulama, self).__init__()
self.arayuz = Ui_AnaPencere()
self.arayuz.setupUi(self)
self.urunleriYukle()
self.arayuz.dgmEkle.clicked.connect(self.urunEkle)
self.arayuz.dgmDuzenle.clicked.connect(self.urunDuzenle)
self.arayuz.dgmSil.clicked.connect(self.urunSil)
self.arayuz.tabloStok.doubleClicked.connect(self.ciftTiklanan)
self.arayuz.dgmKapat.clicked.connect(self.uygKapat)
def urunleriYukle(self):
urunler = [
{"kimlik": "1234", "ad": "abcçd", "fiyat": 7000},
{"kimlik": "2355, "ad": "defgğ", "fiyat": 7500},
{"kimlik": "3789", "ad": "uüvyz", "fiyat": 7200},
{"kimlik": "1254", "ad": "klmns", "fiyat": 6600}
]
self.arayuz.tabloStok.setRowCount(len(urunler))
self.arayuz.tabloStok.setColumnCount(3)
self.arayuz.tabloStok.setHorizontalHeaderLabels(("Kimlik", "Ad", "Fiyat"))
satirIndisi = 0
for urun in urunler:
self.arayuz.tabloStok.setItem(satirIndisi, 0, QtWidgets.QTableWidgetItem(str(urun["kimlik"])))
self.arayuz.tabloStok.setItem(satirIndisi, 1, QtWidgets.QTableWidgetItem(urun["ad"]))
self.arayuz.tabloStok.setItem(satirIndisi, 2, QtWidgets.QTableWidgetItem(str(urun["fiyat"])))
satirIndisi += 1
def urunEkle(self):
kimlik = self.arayuz.grdUrunKimlik.text()
ad = self.arayuz.grdUrunAdi.text()
fiyat = self.arayuz.grdUrunFiyati.text()
if kimlik and ad and fiyat is not None:
satirSayaci = self.arayuz.tabloStok.rowCount()
self.arayuz.tabloStok.insertRow(satirSayaci)
self.arayuz.tabloStok.setItem(satirSayaci, 0, QtWidgets.QTableWidgetItem(kimlik))
self.arayuz.tabloStok.setItem(satirSayaci, 1, QtWidgets.QTableWidgetItem(ad))
self.arayuz.tabloStok.setItem(satirSayaci, 2, QtWidgets.QTableWidgetItem(fiyat))
def urunDuzenle(self):
pass
def urunSil(self):
satir = self.arayuz.tabloStok.currentRow()
soru = QtWidgets.QMessageBox.question(self, "Kaldır", "Seçtiğiniz ürünü silmek istiyor musunuz?", QtWidgets.QMessageBox.Yes | QtWidgets.QMessageBox.No)
if soru == QtWidgets.QMessageBox.Yes:
self.arayuz.tabloStok.removeRow(satir)
def ciftTiklanan(self):
self.arayuz.tabloStok.setEditTriggers(QtWidgets.QTableWidget.NoEditTriggers)
def uygKapat(self):
quit()
def uygulama():
uyg = QtWidgets.QApplication(sys.argv)
pencere = Uygulama()
pencere.show()
sys.exit(uyg.exec_())
uygulama()