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 :

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;
        }
    }
}
avec parseResponse qui est de ce genre :

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);
}
Les retours console des qDebug() :

view 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”
Merci pour votre aide