Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Qt] La fenêtre plus rapide que son ombre...

18 mars 2008 à 18:36:56

Bonjour bonjour,
J'ai fais un petit programme qui doit m'afficher en premier lieu une fenêtre principale qui contient un menu, dés que je clique sur un des choix j'ai tous les résultats que je veux, juste un probléme d'une fenêtre qui s'affiche à la même vitesse que la lumiére, c'est-à-dire qu'elle s'affiche et disparait en un clin d'oeil, pour mon travail j'ai construit deux classes, dans l'une des methodes de la premiére j'appelle le constructeur de la deuxiéme, donc si quelqu'un peut me dire où est le probléme ça serait cool ^^

MaFenetre.cpp
  1. #include "MaFenetre.h"
  2. /******************Constructeur****************/
  3. MaFenetre::MaFenetre() : QWidget()
  4. {
  5. setFixedSize(230, 120);
  6.     bouton = new QPushButton("Ouvrir la boîte de dialogue", this);
  7.     bouton->move(40, 50);
  8.     QObject::connect(bouton, SIGNAL(clicked()), this, SLOT(ouvrirBDD()));
  9. }
  10. /*********************************************/
  11. void MaFenetre::ouvrirBDD()
  12. {
  13.     int pseudo = QInputDialog::getInteger(this, "Pseudo", "Quel est votre pseudo ?");
  14.      }


MaFenetre.h

  1. #ifndef DEF_MAFENETRE
  2. #define DEF_MAFENETRE
  3. #include <QApplication>
  4. #include <QWidget>
  5. #include <QPushButton>
  6. #include <QProgressBar>
  7. #include <QSlider>
  8. #include <QMessageBox>
  9. #include<QInputDialog>
  10. class MaFenetre : public QWidget // On hérite de QWidget (IMPORTANT)
  11. {
  12.       Q_OBJECT
  13.     public:
  14.     MaFenetre();
  15.     public slots:
  16.            void ouvrirBDD();
  17.     private:
  18.     QPushButton *bouton;
  19. };
  20. #endif


Et la methode ou je fais appel au constructeur:
  1. int ImageViewer::maFonction()
  2. {
  3.       MaFenetre fenetre;
  4.       fenetre.show();
  5.            }


Dans le slot ou j'ai fait appel à maFonction, j'ai l'instruction suivante:

  1. connect(openAct, SIGNAL(triggered()), this,SLOT(maFonction()) );


Voilà, mciii
  • Partager sur Facebook
  • Partager sur Twitter
18 mars 2008 à 19:04:46

normal, show n'est pas "bloquant" donc à la fin de la fonction, fenetre est détruite et donc disparait, soit tu utilises une fonction bloquante (comme QDialog::exec()) soit tu utilises un pointeur
  • Partager sur Facebook
  • Partager sur Twitter
18 mars 2008 à 19:10:45

Ben si j'utilise le QDialog ça sera une fenêtre que je peux configurer comme je veux? (désolée si ma question est super bête :euh: )
  • Partager sur Facebook
  • Partager sur Twitter
18 mars 2008 à 19:46:34

Oui, tu pourra la configuer comme n'importe quelle fenêtre ^^
  • Partager sur Facebook
  • Partager sur Twitter
20 mars 2008 à 15:38:54

apparament c'est validé, donc bonne chance pour ton programme et repose tes questions ici, sa fera moins de post ^^
  • Partager sur Facebook
  • Partager sur Twitter