ains problemQstringlist contains problem

Alles rund um die Programmierung mit Qt
Antworten
Doc_symbiosis
Beiträge: 32
Registriert: 19. Juni 2008 23:10

ains problemQstringlist contains problem

Beitrag von Doc_symbiosis »

Ich habe folgende Funktion

Code: Alles auswählen

void KeyList::setChecked(QStringList *keyIds)
{
	for (int i= 0;i <keyIds->size(); i++) { qDebug() << keyIds->at(i) ;}
	if (keyIds->at(0) != "" ){
		for (int i = 0; i < mKeyList->rowCount(); i++) {
			if (keyIds->contains(mKeyList->item(i, 4)->text()), Qt::CaseSensitive) {
			  qDebug() << i << ". id:" << mKeyList->item(i, 4)->text();
				mKeyList->item(i, 0)->setCheckState(Qt::Checked);
			}
		}
	}
}
Die Ausgabe lautet z.B. (mit genau einer ID in der keyIds und zwei IDs in der mKeyList)

Code: Alles auswählen

"80A443212ECD733A" 
0 . id: "885D2954C26EBB54" 
1 . id: "80A443212ECD733A" 
Woran könnte es liegen, dass das qdebug innerhalb der zweiten if-Schleife ausgeführt wird, obwohl die erste ID nicht in der Liste enthalten ist?
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

1) http://if-schleife.de/
2) Übergib doch die QStringList als (const) Referenz und nicht als Zeiger.
3) Ist das nicht dein Originalcode. Der hier sollte nicht mal kompilieren:

Code: Alles auswählen

if (keyIds->contains(mKeyList->item(i, 4)->text()), Qt::CaseSensitive) {
Was soll das "Qt::CaseSensitive" da noch?
Da ich in dem Codeausschnitt keinen Fehler erkennen kann, solltest du erstmal das Original posten.
Doc_symbiosis
Beiträge: 32
Registriert: 19. Juni 2008 23:10

Beitrag von Doc_symbiosis »

Danke schonmal für die Antwort.

zu 1): DOH!!!, Ja, diesen Begriff verwende ich immer wieder mal falsch...
/zu 2) Werd ich am WE mal ausprobieren..
zu 3) Kompilieren tut der Code ohne Fehler und Warnungen... Warum sollte er es denn nicht tun?

Das Casesensitive hab ich nun rausgeschmissen...
Doc_symbiosis
Beiträge: 32
Registriert: 19. Juni 2008 23:10

Beitrag von Doc_symbiosis »

Hm, mir ist überhaupt nicht klar warum, aber plötzlich funktioniert es genau so, wie ich das möchte, An der Methode hab ich allerdings nichts geändert...
Antworten