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 :

Slot à partir d'une fenêtre principale

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2012
    Messages : 48
    Par défaut Slot à partir d'une fenêtre principale
    Salut à tous!
    Je suis confrone à un problème de slot. Je voudrai en effet ouvrir une fenetre secondaire héritant d'une fentre principale.

    Le problème ici est que le slot pour l'accès à la fenetre secondaire ne fonctionne pas. Celui de la fermeture de l'application fonctionne pourtant.

    Je suis un peu perdu quant à l'implémentaion de la fonction "ouvrirFenetre1" de la fenetre principale qui me permettra d'acceder à la fenetre secondaire.

    Une fois de plus, mon problème est de pouvoir accéder à la fenetre secondaire en cliquant un bouton de la fenetre principale. Est-ce possible avec l'héritage?

    Je serais ravi de toute aide.

    Fichier .h de la fenetre principale.
    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
    #ifndef DEF_HERITAGE
    #define DEF_HERITAGE
     
     
    #include <QtGui>
     
     
    class Heritage: public QMainWindow
    {
        Q_OBJECT
     
    public:
        Heritage();
        ~Heritage();
     
    public slots:
        void ouvrirFenetre1();
     
    protected:
        QMainWindow *m_zoneCentrale;
        QPushButton *m_fenetre1, *m_quitter;
     
     
    };
     
    #endif // HERITAGE_H
    Fichier .cpp de la fenetre principale
    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
    #include "Heritage.h"
     
    Heritage::Heritage()
    {
        m_zoneCentrale = new QMainWindow;
        m_zoneCentrale->setFixedSize(400, 200);
     
        m_fenetre1 = new QPushButton("Ouvrir fenetre1", m_zoneCentrale);
        m_fenetre1->move(50, 150);
     
        m_quitter = new QPushButton("Quitter", m_zoneCentrale);
        m_quitter->move(200, 150);
     
     
        connect(m_fenetre1, SIGNAL(clicked()), this, SLOT(ouvrirFenetre1()));
        connect(m_quitter, SIGNAL(clicked()), qApp, SLOT(quit()));
     
        setWindowTitle("Heritage");
     
        setCentralWidget(m_zoneCentrale);
    }
     
    void Heritage::ouvrirFenetre1()
    {
         m_fenetre1->show();
    }
     
    Heritage::~Heritage()
    {}
    Fichier .h de la fenetre secondaire
    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
    #ifndef DEF_FENETRESECONDAIRE1
    #define DEF_FENETRESECONDAIRE1
     
    #include "Heritage.h"
     
    #include<QtGui>
     
    class FenetreSecondaire1: public Heritage
    {
        Q_OBJECT
     
        FenetreSecondaire1();
        ~FenetreSecondaire1();
     
    public:
     
    private slots:
     
    private:
        QWidget *m_fen1;
     
    };
     
    #endif // FENETRESECONDAIRE1_H
    Fichier .cpp de la fenetre secondaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #include "FenetreSecondaire1.h"
     
    FenetreSecondaire1::FenetreSecondaire1()
    {
        m_fen1 = new QWidget;
        m_fen1->setFixedSize(350, 150);
     
    }
     
    FenetreSecondaire1::~FenetreSecondaire1()
    {
     
    }
    Fichier main
    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
    #include <QApplication>
    #include "Heritage.h"
    #include <QtGui>
     
     
     
    int main(int argc, char *argv[])
    {
        QApplication app(argc, argv);
        Heritage fen;
     
        fen.show();
     
        return app.exec();
    }
    Merci d'avance!

  2. #2
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    18 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 18 327
    Par défaut ouverture fenetre secondaire
    Si m_fen1 est ta fenêtre secondaire, n'aurais-tu pas oublié m_fen1->show() ?
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2012
    Messages : 48
    Par défaut
    Salut chrtophe et merci pour ton post.
    En écrivant m_fen1->show dans FenetreSecondaire1.cpp, ca ne change rien, la fenetre secondaire ne s'ouvre toujours pas.

  4. #4
    Membre éclairé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2011
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2011
    Messages : 316
    Par défaut
    bonjour,

    si ce n'est pas trop tard ...

    j'ai fait un post sur ce sujet fenêtre modale ou non avec un fichier exemple :

    http://www.developpez.net/forums/d12...ntre-fenetres/

    cordialement

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Il y a des choses que je ne comprend pas dans ton code.

    Tu dans ta fenêtre principale un bouton fenetre1 dont le clic appelle le slot ouvrirFenetre1() dont la fonction est d'afficher le bouton sur lequel tu viens de cliquer...

    Tu cherches à afficher une fenêtre secondaire au clic sur le bouton, mais à aucun moment dans ton programme tu ne crée cette fenêtre, elle n'existe jamais, du coup, tu ne peux pas l'afficher.

    Voici ce que je recommande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    void Heritage::ouvrirFenetre1()
    {
         FenetreSecondaire1* fen = new FenetreSecondaire1();
         fen.show();
         fen.exec();
    }
    Autres petites choses :
    Dans ta fenêtre principale, tu lui défini en zone centrale une nouvelle instance de QMainWindow. Ta fenêtre principale contient donc une autre fenêtre principale. C'est peut-être ce que tu voulais faire à la base, mais je trouve cela maladroit.
    De même, ta fenêtre secondaire contient un QWidget dont tu ne fait rien du tout. Manquerait-il une partie du code ?

    Cordialement

Discussions similaires

  1. [Graphics View] Insérer un item à partir d'une fenêtre de dialogue dans la fenêtre principale
    Par skanderbahloul dans le forum Débuter
    Réponses: 5
    Dernier message: 25/11/2014, 19h40
  2. Créer une fenêtre principale
    Par spide dans le forum Débuter
    Réponses: 2
    Dernier message: 22/02/2008, 16h23
  3. Ouvrir une fenêtre en pop-up à partir d'une fenêtre pop-up
    Par beji15 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 13/02/2008, 19h41
  4. Extraction d'une sous-chaine à partir d'une chaine principale
    Par gazere dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 13/06/2007, 04h08
  5. Modifier un champ à partir d'une fenêtre modale
    Par ahoyeau dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 08/03/2005, 16h53

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