Signaler

Problème avec les QInput Dialog de Qt

Posez votre question DoMiN1ToR 37Messages postés vendredi 3 mars 2017Date d'inscription 2 octobre 2017 Dernière intervention - Dernière réponse le 3 sept. 2017 à 18:43 par mamiemando
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
Utile
+0
plus moins
Bonjour,

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

Bonne chance
Donnez votre avis
Utile
+0
plus moins
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.
Donnez votre avis
Utile
+0
plus moins
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
Donnez votre avis

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !