Problème avec les QInput Dialog de Qt

Bonjour

J'aimerais faire une page d'identification en classe pour mon programme . J'en suis arrivé à ce code

#ifndef FENIDENTIFICATION_H
#define FENIDENTIFICATION_H

#include <QApplication>
#include <QWidget>
#include <QInputDialog>
class FenIdentification : public QWidget // création classe héritant QWidget
{
    Q_OBJECT
public:
    FenIdentification();

private:

};

#endif // FENIDENTIFICATION_H


Pour mon header et celui ci pour ma source :

#include "fenidentification.h"

FenIdentification::FenIdentification() : QWidget()
{
    bool ok = false;

    QString identifiant = QInputDialog::getText(this, "Identification", "Identifiant:", QlineEdit::Normal, QString(), &ok);

    if(ok && identifiant = "0000")
    {
        bool okMDP = false;
        QString motDePasse = QinputDialog::getText(this, "Identification", "Mot de passe:", QLineEdit::Password, QString(), &okMDP);

        if(okMDP && motDePasse = "0000")
        {
            QMessageBox::information(this, "Identification", "Content de vous revoir" + identifiant);
        }
    }
}


Mais au moment de la compilation plusieurs erreurs que je ne comprend pas arrive , pourquoi ? merci de votre aide

3 réponses

  1. Modérateur
    Bonjour,

    Quelles sont les erreurs de compilation que tu ne comprends pas ?

    Bonne chance
    0
    1. Bonjour,
      J'ai quelques questions sur l'expression
      ok && identifiant = "0000"


      L'expression
       identifiant = "0000"
      est-elle censée tester si la chaîne
       identifiant
      est vide ? Si elle contient
      "0000"
      elle n'est pas non vide ?

      Ne vaudrait-il pas mieux forcer (par des parenthèses) l'évaluation de
       identifiant = "0000"
      AVANT le ET logique ?
      L'expression
       identifiant = "0000"
      est-elle vraiment une expression booléenne ? N'est-ce pas plutôt une affectation ?

      Voici un exemple d'utilisation de QInputDialog fourni par qt.developpez.com
           bool ok;
      QString text = QInputDialog::getText(this, tr("QInputDialog::getText()"),
      tr("User name:"), QLineEdit::Normal,
      QDir::home().dirName(), &ok);


      Et surtout
          if (ok && !text.isEmpty())

      Pourquoi s'en éloigner ?
      Bon courage.
      0
      1. Modérateur
        Vu la manière dont le code est rédigé c'est clairement
        ==
        qui devrait utilisé à la place de
        =
        .

        Ensuite je pense que la casse n'est pas respecté pour certains nom de classe Qt (par exemple
        QinputDialog
        au lieu de
        QInputDialog
        , etc.)

        Bonne chance
        0