Hello,
Je rencontre un problème dans une méthode dans laquelle je dois tester si un QString recu en paramètre == à un QString retourné par une autre méthode.
J'ai mis quelques qDebug() pour afficher les valeurs des variable.
Les valeurs traitées semblent ok. En d'autres termes j'ai bien un cas ou la variable input == parseResponse() mais je ne rentre jamais dans la boucle "if" ! :
J'ai ce code :
avec parseResponse qui est de ce genre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 void Matrix::viewTiedOutputs(QString input) { qDebug() << "view tied outputs for input" << input; for(int out = 1; out < 5; out++) { qDebug() << "sendQuery for output " << out << "returned : " << parseResponse(dxpClient->sendQuery(QString::number(out) + "!\r")); if(parseResponse(dxpClient->sendQuery(QString::number(out) + "!\r")) == input) { qDebug() << "looping switch statment" << out; switch(out) { case 1: ui->dxp_out_1->setChecked(true); break; case 2: ui->dxp_out_2->setChecked(true); break; case 3: ui->dxp_out_3->setChecked(true); break; case 4: ui->dxp_out_4->setChecked(true); break; } qDebug() << "input " << input << " tied to output " << out; } } }
Les retours console des qDebug() :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 QString Matrix::parseResponse(QString msg) { return msg.remove("\n", Qt::CaseInsensitive); }
Merci pour votre aideview tied outputs for input “1”
sendQuery for output 1 returned : “1”
sendQuery for output 2 returned : “3”
sendQuery for output 3 returned : “E13”
sendQuery for output 4 returned : “E13”
Partager