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
Pour mon header et celui ci pour ma source :
Mais au moment de la compilation plusieurs erreurs que je ne comprend pas arrive , pourquoi ? merci de votre aide
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
-
Bonjour,
Quelles sont les erreurs de compilation que tu ne comprends pas ?
Bonne chance -
Bonjour,
J'ai quelques questions sur l'expressionok && identifiant = "0000"
L'expressionidentifiant = "0000"
est-elle censée tester si la chaîneidentifiant
est vide ? Si elle contient"0000"
elle n'est pas non vide ?
Ne vaudrait-il pas mieux forcer (par des parenthèses) l'évaluation deidentifiant = "0000"
AVANT le ET logique ?
L'expressionidentifiant = "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.combool ok;
QString text = QInputDialog::getText(this, tr("QInputDialog::getText()"),
tr("User name:"), QLineEdit::Normal,
QDir::home().dirName(), &ok);
Et surtoutif (ok && !text.isEmpty())
Pourquoi s'en éloigner ?
Bon courage. -
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 exempleQinputDialog
au lieu deQInputDialog
, etc.)
Bonne chance