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 :

Problème à l'ouverture d'une sous-fenêtre MDI

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 59
    Points : 44
    Points
    44
    Par défaut Problème à l'ouverture d'une sous-fenêtre MDI
    bonjour,

    j'ai un projet dans lequel j'ai une fenêtre principale avec une barre de menu et une barre d'outil.
    J'ai créer une zone centrale MDI.
    je souhaite ouvrir une sous-fenêtre dans ma zone centrale en cliquant sur un bouton de ma barre de menu ou par la barre d'outil.
    Mon code ce compile bien, l'appli se lance, mais lorsque je que je clique sur mon bouton, ca m'ouvre une fenêtre :
    "l'application" a cesser de fonctionner
    et ca quitte l'appli.
    Voila les morceaux de code :
    mainwindows.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
     
    MainWindow::MainWindow(QWidget *parent) :
        QMainWindow(parent),
        ui(new Ui::MainWindow)
    {
        ui->setupUi(this);
     
        creerActions();
        creerMenus();
        creerBarresOutils();
        creerBarreEtat(etat);
     
        QMdiArea *zoneCentrale = new QMdiArea;
        setCentralWidget(zoneCentrale);
    }
     
    void MainWindow::creerActions()
    {
        actionNewPers = new QAction(tr("&Ajouter un personnel"),this);
        connect(actionNewPers,SIGNAL(triggered()),this, SLOT(newPers()));
    }
     
    void MainWindow::creerMenus()
    {
        QMenu *menuFichier = menuBar()->addMenu("&Fichier");
        menuFichier->addAction(actionNewPers);
    }
     
    void MainWindow::newPers()
    {
        QWidget *fenNewPers = new QWidget;
        QMdiSubWindow *sousFenNewPers = zoneCentrale->addSubWindow(fenNewPers);
    }
    Voila, quelqu'un aurait il une petite idée d'ou vient l'erreur ?

    merci

  2. #2
    Membre expérimenté

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2009
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 009
    Points : 1 738
    Points
    1 738
    Par défaut
    "l'application" a cesser de fonctionner
    Ton Qt Creator fait des fautes ? :p

    Je crois que tu as un problème avec zoneCentrale. Tu ne montres pas tout mais dans le constructeur tu as
    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    QMdiArea *zoneCentrale = new QMdiArea;
    A la sortie du constructeur, le pointeur zoneCentrale n'existe plus. Donc tu dois plutôt en faire un membre de MainWindow (déclaration dans le .h), vu que tu l'utilises par exemple dans newPers(). Ou alors tu utilises centralWidget().

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 59
    Points : 44
    Points
    44
    Par défaut
    oui dans mon .h , en private j'ai mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    QMdiArea *zoneCentrale;

  4. #4
    Membre expérimenté

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2009
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 009
    Points : 1 738
    Points
    1 738
    Par défaut
    Oui donc il ne faut pas que tu redéclares zoneCentrale dans le constructeur, tu dois juste mettre zoneCentrale = new QMdiArea;.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 59
    Points : 44
    Points
    44
    Par défaut
    ok, encore merci. Ca fonctionne. Décidément tu m'es d'une grande aide

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

Discussions similaires

  1. Problème d'ouverture d'une fenêtre vide
    Par Syliano dans le forum Interfaces Graphiques en Java
    Réponses: 9
    Dernier message: 23/02/2012, 14h15
  2. Événement à la fermeture d'une sous-fenêtre MDI
    Par sebasti1-88 dans le forum Débuter
    Réponses: 2
    Dernier message: 29/11/2011, 19h03
  3. Empêcher la double ouverture d'une sous-fenêtre
    Par sebasti1-88 dans le forum Débuter
    Réponses: 5
    Dernier message: 05/07/2011, 23h42
  4. Réponses: 2
    Dernier message: 20/04/2010, 18h03
  5. Ajouter une barre d'outils à une sous fenêtre
    Par barthelv dans le forum MFC
    Réponses: 6
    Dernier message: 23/04/2004, 14h17

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