Dictionary mit Keys vom Typ QDate auslesen
Verfasst: Dienstag 29. Juni 2010, 20:34
Hallo zusammen,
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:
Das sieht für mich eigentlich ok aus.
Mit folgendem Quelltext möchte ich die Schüler in einem QListWidget anzeigen lassen, um die Fehlstunden entschuldigen zu können.
self.datum ist dabei das ausgewählte Datum eines QCalendarWidget, also auch vom Typ QDate.
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:
Die Methode istFehlstundeEntschuldigt in der Klasse Schueler sieht so aus:
Ich steh irgendwie aufm Schlauch und bitte um Hilfe!
Gruß EmaNymton
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