Seite 1 von 1

QComboBox

Verfasst: 5. Juni 2008 12:23
von tseucs
Ich habe bei Qt 4.4 ein kleines Problem.

Wenn ich folgendes Konstrukt verwende, stürzt das Programm immer beim Zugriff auf das QList-Element der QComboBox ab:
elter->rechnungPositionName->setCurrentIndex(-1);
elter->rechnungPositionName->clear();
QStringList namen = daten->GetAllItemNames();
for (QStringList::iterator name=namen.begin(); name!=namen.end(); ++name) {
elter->rechnungPositionName->addItem(*name);
}

Wenn ich direkt vor der for-Schleife noch einen Eintrag machen lasse (z.b.
elter->rechnungPositionName->addItem("*name");
dann bekomme ich keinen Absturz.
Wenn ich aber nach der for-Schleife, dann noch ein
elter->rechnungPositionName->removeItem(0)
mache, stürzt das Programm wieder mit "Index nicht vorhanden" ab.

Noch nicht erwähnt, aber elter->rechnungPositionName ist ein QComboBox-Element.

Es sind übrigens nach der Schleife alle Einträge vorhanden, die drin sein sollen - und natürlich auch das "*name".

Verfasst: 5. Juni 2008 13:19
von PeterLustig
Du greifst einfach auf einen nicht vorhanenen Index zu, dann muss es ja abstürzen. Wo ist jetzt konkret das Problem?

Und es gibt Code-Tags die den Code sehr viel lesbarer formatieren...

Verfasst: 5. Juni 2008 23:35
von tseucs
2 Probleme:
1. Wenn ich mit ...->addItem("..."); ein eine leere QComboBox eingefügt habe, dann muss das wohl der Index 0 sein. Wieso bekomme ich dann einen Absturz, wenn ich genau dieses löschen will?
2. Wieso kann ich exakt das gleiche Element (*QStringList::iterator) nicht in eine leere QComboBox einfügen (Programmabsturz), in eine QComboBox mit einem Element aber schon?
Nebenbei: Ich habe auch mit addItems(...) versucht die StringList anzufügen, aber auch da kommt ein Programmabsturz.

Verfasst: 6. Juni 2008 09:06
von upsala
Was sagt eigentlich dein Debugger dazu? Wieviele Elemente sind wirklich in der QComboBox (count())?