Zwei QComboBoxen nicht möglich?

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
TheWanderer
User
Beiträge: 2
Registriert: Freitag 21. April 2017, 07:35

Zwei QComboBoxen nicht möglich?

Beitragvon TheWanderer » Freitag 21. April 2017, 07:44

Ich verzweifle gerade daran, in einem Programm zwei QComboBoxen verwenden zu wollen. Beide Boxen werden sauber angezeigt. In der Auswertung in der Funktion "OncbChange" wird aber die zweite definierte Combobox mit dem Fehler "'MainWindow' object has no attribute 'cbZwei'" abgelehnt.

Hat jemand einen Tipp, was ich falsch mache?

Thomas

  1. import sys
  2. from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout,  QHBoxLayout,  QComboBox
  3.  
  4. class MainWindow(QWidget):
  5.  
  6.     def __init__(self):
  7.         super().__init__()
  8.        
  9.         self.setGeometry(100, 100, 300, 100)
  10.        
  11.         self.cbEins = QComboBox()
  12.         self.cbEins.currentIndexChanged.connect(self.OncbChange)
  13.         self.cbEins.addItem("Eins")
  14.         self.cbEins.addItem("Zwei")    
  15.            
  16.         self.cbZwei = QComboBox()
  17.         self.cbZwei.currentIndexChanged.connect(self.OncbChange)
  18.         self.cbZwei.addItem("A")
  19.         self.cbZwei.addItem("B")
  20.         self.cbZwei.addItem("C")
  21.        
  22.         sizer_v = QVBoxLayout()
  23.         sizer_h = QHBoxLayout()
  24.        
  25.         sizer_h.addWidget(self.cbEins)
  26.         sizer_h.addWidget(self.cbZwei)
  27.         sizer_v.addLayout(sizer_h)
  28.  
  29.         self.setLayout(sizer_v)
  30.         self.show()        
  31.        
  32.     def OncbChange(self, event):
  33.         print(self.cbEins.currentText())
  34.         print(self.cbZwei.currentText())
  35.        
  36. if __name__ == '__main__':
  37.    
  38.     app = QApplication(sys.argv)
  39.     ex = MainWindow()
  40.     sys.exit(app.exec_())    
Zuletzt geändert von Anonymous am Freitag 21. April 2017, 12:30, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Codebox-Tags gesetzt.
Sirius3
User
Beiträge: 6265
Registriert: Sonntag 21. Oktober 2012, 17:20

Re: Zwei QComboBoxen nicht möglich?

Beitragvon Sirius3 » Freitag 21. April 2017, 10:29

@TheWanderer: OnChange wird bei jeder Änderung aufgerufen, also das erste mal bei addItem("Eins"), und zu diesem Zeitpunkt ist cbZwei noch nicht definiert.
TheWanderer
User
Beiträge: 2
Registriert: Freitag 21. April 2017, 07:35

Re: Zwei QComboBoxen nicht möglich?

Beitragvon TheWanderer » Freitag 21. April 2017, 13:49

Tatsächlich, das war die Ursache.

self.cbEins.currentIndexChanged.connect(self.OncbChange)) hinter die Definition von cbZweilöst das Problem.

Danke @Sirius3.

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder