PyQT5 İkinci Pencere Açılıyor Ama Elementleri Çekilmiyor

Merhabalar.

Öncelikle iki adet pencere var. Bu pencerelerden bir tanesi ana pencere, adı arayuz. Diğeri ise ürün bilgilerini gösteren pencere. Ana pencereden girilen bilgiye ürün bilgilerini gösteren pencere, yani ikinci pencere açılacak.

Açılmasında vs. bir problem yok, orası okey. Ama problem şu ki: Ben, ikinci penceredeki elementleri çekemiyorum. Mesela ikinci pencerede barkodsuzUrunEklemeEkrani_urunBilgileriListBox adında bir TableWidget var, ama çekemiyorum. Kodlardaki hatayı da bir türlü bulamadım.

class barkodsuzUrunEkleme_barkodOnayEkrani(QWidget):

    def __init__(self):

        super(barkodsuzUrunEkleme_barkodOnayEkrani, self).__init__()

        self.onayEkrani = Ui_barkodsuzUrunEkleme_barkodOnayEkrani()

        self.onayEkrani.setupUi(self)

class arayuz(QtWidgets.QMainWindow, QWidget):
    def __init__(self):
        super(arayuz, self).__init__()
        self.arayuz = Ui_genelForm()
        self.ekran = barkodsuzUrunEkleme_barkodOnayEkrani()
        
        self.arayuz.setupUi(self)
        self.anaSayfa()

        self.arayuz.satisVeKasa_barkodsuzUrunEkleme_okutmadanEkle_ekleButton.clicked.connect(self.barkodluUrunEkleme)


    def barkodsuzUrunEkleme(self):
        bilgi = self.arayuz.satisVeKasa_barkodsuzUrunEkleme_okutmadanEkle_barkodTextBox.text()
        if bilgi == "":
            QMessageBox.about(self, "Hata", "Lütfen bir barkod girin.")
            
        else:
            dbcur.execute("SELECT * FROM urunYonetimi WHERE urunBarkodu = ?", (bilgi,))
            sonuc = dbcur.fetchone()
            if sonuc == None:
                QMessageBox.about(self, "Hata", "Girilen barkoda ait bir kayıt bulanamadı.")
                
            else:
                pass
                # barkodsuzUrunEklemeEkrani_urunBilgileriListBox'ı burada çağırmaya çalıştım ama gelmedi.
        if bilgi != "":
            
            self.arayuz.satisVeKasa_barkodsuzUrunEkleme_okutmadanEkle_ekleButton.clicked.connect(lambda: self.ekran.show())

Bu kodlar ile pencereyi açtırabiliyorum ve setuplayabiliyorum. Ama işte ikinci penceredeki barkodsuzUrunEklemeEkrani_urunBilgileriListBox adlı elementi çekemiyorum. barkodsuzUrunEkleme_barkodOnayEkrani sınıfı, ikinci pencere. arayuz ise genel ana ekran. Ana ekrandaki butona tıklayınca ikinci pencere açılacak. Açılmasında problem yok zaten. Tek sorun ikinci penceredeki elementleri çekemiyor olmam.

Sorun nedir? Yardımcı olursanız sevinirim, şimdiden teşekkürler.

Ekleme: Arkadaşlar VSC ile kod yazdığım için şöyle bir şey oldu:

Buldu yani TableWidget’ı. Ama bunu seçtiğimde, bu sefer de şu hatayı alıyorum:

AttributeError: 'Ui_barkodsuzUrun' object has no attribute 'barkodsuzUrunEklemeEkrani_urunBilgileriListBox'

@Gok_Mavisi_Anka hocam kusura bakmayın etiketlediğim için. Bilginiz var mı?

Malesef verilen kodlarda hatalı kısımı bulamadım.

Ui_barkodsuzUrun'ün ne olduğuna bakmamız lazım,
Ui_barkodsuzUrun içerisinde self.barkodsuzUrunEklemeEkrani_urunBilgileriListBox diye bir şeyin olmadığına dair hata alıyorsunuz.

1 Beğeni

Ayrıyeten else bloğunda bulunan lambda fonksiyonu oluşturmuşsunuz onu bir değişkene(buna tam olarak değişken denir mi bilmiyorum fakat öyle devam edeyim) atayarak oluşturduğunuz değişkeni çağırın.

a = lambda: self.barkodsuzUrunEklemeEkrani.show()
a()
1 Beğeni