QComboBox

Alles rund um die Programmierung mit Qt
Antworten
tseucs
Beiträge: 33
Registriert: 2. August 2006 12:30

QComboBox

Beitrag 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".
PeterLustig
Beiträge: 386
Registriert: 21. November 2007 20:07

Beitrag 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...
tseucs
Beiträge: 33
Registriert: 2. August 2006 12:30

Beitrag 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.
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Was sagt eigentlich dein Debugger dazu? Wieviele Elemente sind wirklich in der QComboBox (count())?
Antworten