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

Qt Discussion :

Double affichage d'une fenêtre


Sujet :

Qt

  1. #1
    Membre à l'essai
    Homme Profil pro
    Business Analyste
    Inscrit en
    Février 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Business Analyste

    Informations forums :
    Inscription : Février 2013
    Messages : 14
    Points : 18
    Points
    18
    Par défaut Double affichage d'une fenêtre
    Bonjour tout le monde,

    Je réalise une application avec Qt dans le cadre dans stage pour réaliser mon mémoire et je bloque depuis pas mal de temps sur un problème lié à mon interface graphique. Cette appli est destiné à des appareils mobiles.

    Peut-être quelqu'un d'entre vous a déjà rencontré ce problème, je vous remercie d'avance si vous avez une idée pour le solutionner (j'ai parcouru nombre de tutoriaux / pages web sur le sujet et je ne trouve pas de solution).

    Je m'explique, j'ai une page (FrmAccueil) qui affiche (appeler par le main) en premier lieu quatre boutons qui vont déclencher l'apparition d'une deuxième fenêtre (FrmReference), tout en fermant la première. Cette deuxième fenêtre est personnalisée selon le bouton choisi précédemment.

    Le problème que j'ai est tout bête, cette deuxième fenêtre (FrmReference) s'affiche deux fois !!!

    Voici mon main.cpp

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #include "FrmAccueil.h"
    #include "FrmReference.h"
     
    int main(int argc, char *argv[])
    {
    	QApplication app(argc, argv);
     
        FrmAccueil fenetre; // 
    	fenetre.show();
     
        return app.exec();
    }
    Le fichier FrmAccueil.h

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    #ifndef FRMACCUEIL_H
    #define FRMACCUEIL_H
     
    #include <...>
     
     
    namespace Ui {
        class FrmAccueil;
     
    }
     
    class FrmAccueil : public QWidget
    {
        Q_OBJECT
     
    private slots:
    	void on_butNivellement_clicked();
    	void on_butEcartometrie_clicked();
    	void on_butTilt_clicked();
     
    public:
    	explicit FrmAccueil(QWidget *parent = 0);
    	~FrmAccueil();
     
    private:
    	Ui::FrmAccueil *ui;
     
    };
     
    #endif // FRMACCUEIL_H

    Le fichier FrmAccueil.cpp

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    #include "FrmAccueil.h"
    #include "ui_FrmAccueil.h"
    #include "FrmReference.h"
     
     
    FrmAccueil::FrmAccueil(QWidget *parent) :
        QWidget(parent),
        ui(new Ui::FrmAccueil)
    {
        ui->setupUi(this);
     
    	connect(ui->butQuitter, SIGNAL(clicked()), qApp, SLOT(quit()));
    	connect(ui->butNivellement, SIGNAL(clicked()), this, SLOT(on_butNivellement_clicked()));
    	connect(ui->butEcartometrie, SIGNAL(clicked()), this, SLOT(on_butEcartometrie_clicked()));
    	connect(ui->butTilt, SIGNAL(clicked()), this, SLOT(on_butTilt_clicked()));
     
    	}
     
    FrmAccueil::~FrmAccueil()
    {
        delete ui;
    }
     
    void FrmAccueil::on_butNivellement_clicked()
    {	
    	hide();
    	FrmReference *ref = new FrmReference(); 
    	ref->refNivellement();
    	ref->show();
     
    }
     
    void FrmAccueil::on_butEcartometrie_clicked()
    {	
    	hide();
        FrmReference *ref = new FrmReference(); 
    	ref->refEcartometrie();
    	ref->show();
     
    }
     
    void FrmAccueil::on_butTilt_clicked()
    {	
    	hide();
    	FrmReference *ref = new FrmReference(); 
    	ref->refTilt();
    	ref->show();
     
    }

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    Le fichier FrmReference.h
     
    #ifndef FRMREFERENCE_H
    #define FRMREFERENCE_H
     
    #include <...>
     
    namespace Ui {
        class FrmReference;
     
    }
     
    class FrmReference : public QMainWindow
    {
        Q_OBJECT
     
    private slots:
    	void choisirFichier();
     
     
    public:
    	explicit FrmReference(QMainWindow *parent = 0);
    	~FrmReference();
    	void refNivellement();
    	void refEcartometrie();
    	void refTilt();
     
    private:
    	Ui::FrmReference *ui;
     
     
    };
     
    #endif // FRMREFERENCE_H

    et enfin le fichier FrmReference.cpp

    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
    17
    #include "FrmReference.h"
    #include "ui_FrmReference.h"
     
    FrmReference::FrmReference(QMainWindow *parent) : 
    	QMainWindow(parent),  
    	ui(new Ui::FrmReference)
    {
        ui->setupUi(this);
     
        connect(ui->butFichiers, SIGNAL(clicked()), this, SLOT(choisirFichier()));
     
    }
     
    FrmReference::~FrmReference()
    {
        delete ui;
    }

    Merci encore pour votre aide...

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 860
    Points : 219 062
    Points
    219 062
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    En lisant le code, je ne vois pas. Vous pouvez trouver plus rapidement le problème en ajoutant des qDebug() ou alors, des points d'arrêt dans les slots.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Business Analyste
    Inscrit en
    Février 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Business Analyste

    Informations forums :
    Inscription : Février 2013
    Messages : 14
    Points : 18
    Points
    18
    Par défaut
    Bonjour,

    Merci pour la réponse, je vais essayé de déboguer mon code avec ces outils.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Business Analyste
    Inscrit en
    Février 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Business Analyste

    Informations forums :
    Inscription : Février 2013
    Messages : 14
    Points : 18
    Points
    18
    Par défaut
    J'ai trouvé une solution à mon problème :-)

    En fait c'est relativement simple, il faut juste savoir comment ouvrir une seconde fenêtre à partir d'une fenêtre principale.

    Ce tuto explique bien comment faire: http://irmatden.developpez.com/tutoriels/dialog/

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

Discussions similaires

  1. Affichage d'une fenêtre sans la barre d'outil
    Par itrione dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 20/06/2006, 23h43
  2. [C# 2]Affichage d'une fenêtre d'attente
    Par sarapis dans le forum Windows Forms
    Réponses: 6
    Dernier message: 03/06/2006, 00h18
  3. [C#] Problème d'affichage d'une fenêtre (event Load)
    Par PB-W dans le forum Windows Forms
    Réponses: 3
    Dernier message: 10/03/2006, 13h48
  4. pb affichage dans une fenêtre
    Par Mat 74 dans le forum Windows
    Réponses: 8
    Dernier message: 27/11/2005, 23h14

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