IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Discussion :

Résultat d'un QDialog

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Résultat d'un QDialog
    Bonjour.

    Comme dit dans le titre, j'ai un problème lors de la récupération du résultat d'un QDialog.

    J'utilise une fenêtre PasswordRequest héritant de QDialog. Cette fenêtre check le mot de passe entré, s'il est bon, elle appelle accept(), sinon reject().

    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
    class PasswordRequest : public QDialog
    {
    		Q_OBJECT
     
    	public:
    		explicit PasswordRequest(QWidget *parent = 0);
    		~PasswordRequest();
     
    		bool checkPassword();
     
    	public slots:
    		void okClicked();
     
    	private:
    		Ui::PasswordRequest *ui;
    };
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    bool PasswordRequest::checkPassword()
    {
        return ui->lineEdit->text() == "azerty";
    }
     
    void PasswordRequest::okClicked()
    {
        if(checkPassword())
    	 accept();
        else
    	 reject();
    }
    Cette fenêtre est utilisée de la façon la plus simple (telle que dictée dans la doc) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    bool UserModeGate::passwordRequest()
    {
    	int res = PasswordRequest(this).exec();
    	return QDialog::Accepted == res;
    }
    Mon problème est le suivant : le résultat récupéré dans res est TOUJOURS QDialog::Accepted. J'ai vérifié en pas-à-pas et la fonction reject() met bien à QDialog::Rejected le résultat de la fenêtre, pourtant c'est QDialog::Accepted qui est placé dans res. Alors là, je ne sais plus quoi faire ni où chercher.

    Quelqu'un aurait-il une idée ?
    Dernière modification par Invité ; 22/11/2012 à 09h52.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Trouvé.

    Le problème venait du fait que la fenêtre a été créée à l'aide de QtDesigner sur la base d'un QDialog with buttons. Cela utilise automatiquement une QButtonBox qui court-circuite le résultat.

    Il faut donc utiliser un bouton simple.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Le résultat de Print ne s'affiche pas...
    Par Red Bull dans le forum Langage
    Réponses: 9
    Dernier message: 15/06/2006, 18h56
  2. [requête]donner résultat que si + de n lignes...
    Par Titia765 dans le forum Langage SQL
    Réponses: 12
    Dernier message: 10/06/2003, 12h02
  3. Réponses: 3
    Dernier message: 18/05/2003, 00h16
  4. Réponses: 4
    Dernier message: 28/09/2002, 00h00
  5. [BDD] Enregistrer le résultat d'une requête
    Par Mowgly dans le forum C++Builder
    Réponses: 5
    Dernier message: 19/06/2002, 15h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo