ich möchte gerne Fehlstunden von Schülern in einem dictionary verwalten, dass als keys das jeweilige Datum von Typ QDate enthält. Das ist soweit auch kein Problem, bei der Eingabe von den Fehlstunden werden diese in dem dictionary Fehlstunden gespeichert. Lasse ich mir das ganze z.B. für einen Schüler ausgeben, sieht es so aus:
Code: Alles auswählen
{PyQt4.QtCore.QDate(2010, 7, 31): 0, PyQt4.QtCore.QDate(2010, 7, 30): 1, PyQt4.QtCore.QDate(2010, 7, 27): 0}
Mit folgendem Quelltext möchte ich die Schüler in einem QListWidget anzeigen lassen, um die Fehlstunden entschuldigen zu können.
Code: Alles auswählen
def fehlstundenAnzeigen(self):
self.listWidget.clear()
for schueler in self.kurs.Teilnehmer:
if self.datum in schueler.Fehlstunden:
item = QtGui.QListWidgetItem()
item.setText(schueler.Vorname + ' ' + schueler.Name)
item.setFlags(QtCore.Qt.ItemIsEnabled | QtCore.Qt.ItemIsUserCheckable)
if schueler.istFehlstundeEntschuldigt(self.datum):
item.setCheckState(QtCore.Qt.Checked)
else:
item.setCheckState(QtCore.Qt.Unchecked)
self.listWidget.addItem(item)
Die if-Abfrage wird aber überhaupt nicht durchlaufen. Wenn ich self.datum in schueler.Fehlstunden.keys() überprüfe durchläuft er die if-Abfrage, meckert allerdings dann beim Aufruf der Methode istFehlstundeEntschuldigt über einen KeyError:
Code: Alles auswählen
KeyError: PyQt4.QtCore.QDate(2010, 7, 31)
Code: Alles auswählen
def istFehlstundeEntschuldigt(self,datum):
if self.Fehlstunden[datum]==1:
return True
else:
return False
Gruß EmaNymton