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 :

Comment construire mon programme?


Sujet :

Qt

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 6
    Par défaut Comment construire mon programme?
    Bonjour,
    voilà je voudrais développer un programme en Qt.

    Je vais donc faire une classe qui hérite de QMainWindow.
    Dans cette classe, je veux avoir:
    *** un menu (avec des QMenu et QAction )
    *** deux objects Accueil et Feuille héritant de QWidget (dans lesquels il y aura des boutons, des barres, etc): (le code sera donc dans accueil.h et accueil.cpp) .

    Au départ, Accueil sera le widget central (avec setCentralWidget()) : il possedera un bouton connexion.

    Je voudrais que le clic sur connexion provoque le changement de widget central :
    Le widget Accueil sera supprimé et changé par le widget Feuille.

    Le problème, c'est que comme le code sera dans Accueil.cpp, je ne vois pas comment changer le widget qui lui sera dans MainWindow.h/.cpp.
    Je pense à "l'amitié" mais ce ne change rien car je ne vois pas comment modifier le widget central.

    Quelqu'un aurait t'il une idée?

    Merci d'avance.

  2. #2
    Membre expérimenté Avatar de cayou66
    Inscrit en
    Décembre 2008
    Messages
    286
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Décembre 2008
    Messages : 286
    Par défaut
    Je lis mal peut être mais tu dis au départ que tes deux classes de widget principal sont dans le même fichier source/header, et après tu dis:

    "Le problème, c'est que comme le code sera dans Accueil.cpp, je ne vois pas comment changer le widget qui lui sera dans MainWindow.h/.cpp."

    Le widget est dans la MainWindow? Quel Widget? Le widget feuille? Mais il n'est pas dans le même .cpp que Acceuil?


    Pour changer de widget : removeSubWindow() -> addSubwindow()


  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 6
    Par défaut
    Pardon je n'ai pas été très clair.
    En fait, dans mon MainWindow.h:
    Il y aura mes deux attributs : Accueil & Feuille (héritant de QWidget).
    Au démarrage, le widget central sera Accueil.

    Dans mon Accueil.h:
    Il y aura un attribut QPushButton

    Je veux que le clic sur QPushButton delete Accueil, crée un Feuille et place le Feuille (en Widget central).

    Seulement quand je vais faire mon slot dans Accueil.cpp, je ne sais pas comment dire qu'il faut supprimer Accueil, créer Feuille et opérer le changement.

  4. #4
    Membre expérimenté Avatar de cayou66
    Inscrit en
    Décembre 2008
    Messages
    286
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Décembre 2008
    Messages : 286
    Par défaut
    Ah !

    Tu raccroche au clicked() du QPushButton un slot personnalisé dans ta classe MainWindow, cette dernière supprimant la fenêtre Acceuil, et créant la fenêtre Feuille.
    removeSubWindow() -> addSubwindow() ?

    Pour le connect dans acceuil:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    connect(pushbutton, SIGNAL(clicked()), parent, SLOT(monSlot()));
    ...
    ...
    parent étant un pointeur vers la QMainWindow.
    Dans mainWindow:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    MainWindow::monSlot()
    {
       removeSubWindow(acceuil);
       addSubWindow(feuille);
    }

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 6
    Par défaut
    Hum, voilà ce que la console me dit:

    interface/HomeWindow.cpp: In constructor ‘HomeWindow::HomeWindow()’:
    interface/HomeWindow.cpp:37: error: no matching function for call to ‘HomeWindow::connect(QPushButton*&, const char [11], <unresolved overloaded function type>, const char [13])’
    /usr/include/qt4/QtCore/qobject.h:197: note: candidates are: static bool QObject::connect(const QObject*, const char*, const QObject*, const char*, Qt::ConnectionType)
    /usr/include/qt4/QtCore/qobject.h:302: note: bool QObject::connect(const QObject*, const char*, const char*, Qt::ConnectionType) const
    make: *** [HomeWindow.o] Erreur 1
    q@DEBIAN:~/Desktop/webdrive$

  6. #6
    Membre éprouvé Avatar de sardik
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    135
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2009
    Messages : 135
    Par défaut
    Montre le code de la ligne 37 de interface/HomeWindow.cpp

Discussions similaires

  1. [Lazarus] Comment construire mon projet ?
    Par franck.thibault dans le forum Lazarus
    Réponses: 0
    Dernier message: 12/10/2007, 15h02
  2. [VBA-E] comment lancer mon programme grace a un bouton ?
    Par Anorgasmophobie dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 10/05/2007, 21h24
  3. Comment exécuter mon programme en dehors de Netbeans?
    Par julie_the_touch dans le forum Langage
    Réponses: 4
    Dernier message: 13/04/2007, 18h18
  4. [Fortran 95] Comment exécuter mon programme ?
    Par silver2 dans le forum Fortran
    Réponses: 1
    Dernier message: 15/01/2007, 16h15
  5. Réponses: 9
    Dernier message: 07/11/2006, 14h12

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