Python Pyqt5 ile Pencereler Arası Veri Transferi

Bu şekilde bir pencerem mevcut.
Fonksiyonum da aşağıdaki gibi

    def AnasayfaTablo(self):

                baglanti = sqlite3.connect(ayarlarJson('veritabani'))
                baglanti.row_factory = sqlite3.Row
                islem = baglanti.cursor()
                baglanti.commit()

                islem.execute("SELECT * FROM saatler ORDER BY s_kod DESC")
                mysqlSorguToplu = islem.fetchall()

                self.anasayfaForm.tableArsiv.setHorizontalHeaderLabels(('#','Kod','Tarih', 'Gün', 'Anons', 'Şarkı', 'Programci', 'Durum', 'İşlem'))
                self.anasayfaForm.tableArsiv.setRowCount(len(mysqlSorguToplu))
                self.anasayfaForm.tableArsiv.setColumnWidth(0,20)
                self.anasayfaForm.tableArsiv.setColumnWidth(1,120)
                self.anasayfaForm.tableArsiv.setColumnWidth(2,150)
                self.anasayfaForm.tableArsiv.setColumnWidth(3,100)
                self.anasayfaForm.tableArsiv.setColumnWidth(4,60)
                self.anasayfaForm.tableArsiv.setColumnWidth(5,60)
                satir=0
                for veri in mysqlSorguToplu:

                    try:
                        sarkilar = json.loads(veri['s_playlist'])
                        sarkiSayisi = len(sarkilar)
                    except:
                        sarkiSayisi = 0

                    dateIslem = datetime.utcfromtimestamp(veri['s_unixtime'])
                    dateIslem = datetime.timestamp(dateIslem)
                    gun = time.strftime('%A', time.localtime(dateIslem))

                    chkBoxItem = QTableWidgetItem()
                    chkBoxItem.setFlags(QtCore.Qt.ItemIsUserCheckable | QtCore.Qt.ItemIsEnabled)
                    chkBoxItem.setCheckState(QtCore.Qt.Unchecked)

                    btn = QPushButton('Düzenle')
                    btn.setObjectName('btnSatirDuzenle')
                    btn.clicked.connect(self.Duzenle)



                    self.anasayfaForm.tableArsiv.setItem(int(satir),0,chkBoxItem)
                    self.anasayfaForm.tableArsiv.setItem(int(satir),1,QTableWidgetItem(str(veri['s_kod'])))
                    self.anasayfaForm.tableArsiv.setItem(int(satir),2,QTableWidgetItem(str(datetime.utcfromtimestamp(veri['s_unixtime']))))
                    self.anasayfaForm.tableArsiv.setItem(int(satir),3,QTableWidgetItem(str(gunTurkce(gun))))
                    self.anasayfaForm.tableArsiv.setItem(int(satir),4,QTableWidgetItem(str(veri['s_anons_sayisi'])))
                    self.anasayfaForm.tableArsiv.setItem(int(satir),5,QTableWidgetItem(str(sarkiSayisi)))
                    self.anasayfaForm.tableArsiv.setItem(int(satir),6,QTableWidgetItem(str(veri['s_programci'])))
                    self.anasayfaForm.tableArsiv.setItem(int(satir),7,QTableWidgetItem(str(veri['s_durum'])))
                    self.anasayfaForm.tableArsiv.setCellWidget(int(satir),8,btn)
                    satir+=1

Ben Düzenle dendiği zaman açılan sayfaya veri göndermek istiyorum. Bir Id ve ya hangi satıra ait bir buton olduğuna dair.
Açılan pencerede düzenlemeler yaptırabilmek için.
Hangi yolu izlemem gerekiyor acaba?

ilacın burada

1 Beğeni

Bakayım hocam teşekkürler.

btn.clicked.connect(lambda: self.Duzenle(satir))

Late binding sorun cikaracaktir:

btn.clicked.connect((lambda satir: lambda: self.Duzenle(satir))(satir))

veya

btn.clicked.connect(lambda satir=satir: self.Duzenle(satir))

Test etmedim, cunku: Soru Sorarken Sıkça Düşülen Hatalar #6

1 Beğeni
btn.clicked.connect((lambda satir: lambda: self.Duzenle(satir))(satir))

bu kısım işimi tam anlamıyla gördü hocam çok teşekkür ederim ilginiz için.

not: anca bakabildim uzun zamandır diğer işlerimden kod satırı göremedim :smiley:

Şöyle söyleyim ben 2 pencere biraz farklı yaptım iki tane qt pencere yaptım bir tanesi ana pencere gönder tıklayınca ikinci açılacaktı ardından 2 inci pencere yaptım kod kısmında ise birinci pencerenin kodlarını yazdım ikinci pencereyide birinci pencerinin koduna entegre ettim umarım yardım etmişimdir istersen örnek olarak proje atabilirim bir arkadaş istemiştim ona yaptığım proje var elimde duruyor.

hocam bu bahsettiğiniz bana çok yarayacak , 2 pencerem var, başlangıçta 1 pencere açılıyor ve oraya belirli şartlarla veriler giriyorum , bir labela tıklayınca 2.pencerem açılıyor orayada belirli şartlarda veriler giriyorum, istediğim şey ise ; 2. pencere açık değilkende 2. penceredeki tabloya yazılan verinin şartları gerçekleşirse tabloya yazmaya devam etsin.