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 :

Lancer une page depuis une autre page

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 49
    Par défaut Lancer une page depuis une autre page
    Bonjour a tous

    je coince completement dans mon programme j'ai une page_A.cpp, page_A.ui et une page_A.h sur la page_A.ui j'ai 2 boutons et j'aimerai ouvrir la fenetre de ma page_B.ui mais je ne sais pas comment faire.

    J'ai créé une sesonde page_B.cpp, page_B.h et une page_B.h

    je sais que je dois créé une fonction dans ma page_A.cpp pour créé le slot de mon bouton

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void page_1::ouvrir_fenetre()
    {
      je ne sais pas quoi mettre dans les accollade pour instancier ma page_2
    }
    et mon slot je l'ecris comme ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     QObject::connect(bt1,SIGNAL(clicked()), this, SLOT(ouvrir_fenetre()));
    merci a tous pour votre aide

  2. #2
    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,

    http://irmatden.developpez.com/tutoriels/dialog/

    je crois que j'avais fais un truc la dessus, je le recherche et je le poste si je le retrouve.

    cordialement

  3. #3
    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
    je savais biens ...


    petite demo modale, non modale, avec gui et sans gui


    cordialement
    Fichiers attachés Fichiers attachés

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 49
    Par défaut
    super c'est exactement ça

    je comprend bien ton code mais j'ai une petite question

    je ne vois pas de ligne avec la connexion des boutons pour ouvrir tes fenêtres

    ou alors je comprend peut pas tout

  5. #5
    Membre Expert

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

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

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 009
    Par défaut
    Je n'ai pas regardé, mais tu peux faire les connexions dans Designer.

  6. #6
    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,

    compile et tu comprendra tout.

    j'ai crée 3 fenetres avec designer de Qt et deux par codes.

    la fenetre principale contient 4 boutons pour choisir les 4 solutions. Celle-ci a été crée avec qt designer. (icon design) clic droit sur un bouton, signal clicked...

    cordialement

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 49
    Par défaut
    je fais un clique droit sur le bouton et effectivement il me créer la fonction qui me lie au bouton

    j'ai réessayer de partir d'un nouveau projet pour tester mais j’obtiens des erreur que je comprend pas

    voici mes fichiers j'ai mainwidows.h, ui et cpp cette page affiche les autres fenetre

    et une page1.h, ui, cpp que je souhaite afficher

    mainwindows.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
    31
    32
    33
    34
    35
     
    #ifndef MAINWINDOW_H
    #define MAINWINDOW_H
     
    #include <QMainWindow>
     
    #include "page1.h"
    #include"mainwindow.h"
     
     
    namespace Ui {
        class MainWindow;
    }
     
     
    class MainWindow : public QMainWindow
    {
        Q_OBJECT
     
    public:
        explicit MainWindow(QWidget *parent = 0);
        ~MainWindow();
     
     
    private slots:
        void open();
     
        void on_bt1_clicked();
     
    private:
        Ui::MainWindow *ui;
        page1 *page ;
    };
     
    #endif // MAINWINDOW_H
    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
    #include "mainwindow.h"
    #include "ui_mainwindow.h"
    #include <QDialog>
     
    MainWindow::MainWindow(QWidget *parent) :
        QMainWindow(parent),
        ui(new Ui::MainWindow)
    {
        ui->setupUi(this);
     
        /*move( ( QApplication::desktop()->width() - width() ) / 2,
              ( QApplication::desktop()->height() - height() ) / 2 ); // pour centrer la fenetre sur l'ecran
    */
        page = new page1;
     
     
     
    }
     
     
    MainWindow::~MainWindow()
    {
        delete ui;
    }
     
     
    void MainWindow::on_bt1_clicked()
    {
        page->show();
    }
    ma page1.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
    #ifndef PAGE1_H
    #define PAGE1_H
     
    #include <QDialog>
     
    namespace Ui {
    class page1;
    }
     
    class page1 : public QDialog
    {
        Q_OBJECT
     
    public:
        explicit page1(QWidget *parent = 0);
        ~page1();
     
    private:
        Ui::page1 *ui;
    };
     
    #endif // PAGE1_H
    ma page1.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
    #include "page1.h"
    #include "ui_page1.h"
     
    #include "mainwindow.h"
     
    page1::page1(QWidget *parent) :
        QDialog(parent),
        ui(new Ui::page1)
    {
        ui->setupUi(this);
    }
     
    page1::~page1()
    {
        delete ui;
    }
    quand je compile j'ai 2 erreurs

    undefined reference to `MainWindow::open()'

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 49
    Par défaut
    et la 2eme erreur
    :-1: erreur : collect2: ld returned 1 exit status

  9. #9
    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
    bonsoir,

    tu l'as regarder mon code ? !!!

    il n'y a rien a modifier il marche tout seul.

    et si tu regarde bien, je ne delete rien du tout !!! que ce soit en modale ou non.

    je ne peux pas faire plus simple il n'y a que les .h de la fenetre principale et de la fenetre que tu as choisis et modifier les 2 cpp correspondantes !

    si tu veux pouvoir fermer ta fenetre principale apres avoir ouvert l'autre :

    fenetreprincipale.h, fennonmodaleui.h, fenetreprincipale.cpp, fennonmodaleui.cpp.

    cordialement

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 49
    Par défaut
    merci de ma repondre aussi vite

    j'ai bien regarder ton mais j'essaye de comprendre le fonctionnement plutot que de le reprendre comme ça

    c'est pour ça que j'ai créé un nouveau projet pour essayer de reproduir ce que tu as fait et comprendre la mecaniqme de QT vu que j'en suis encore à mes debut

  11. #11
    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,

    la fenetre principale étant fabriqué avec Qt designer...

    Dans mon exemple on peut rajouter dans la gestion des fenetres non modal;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    hide(); // cache la fenetre principale
         ou close(); // ferme la fenetre principale
    dans le cas ou on choisi de cacher la fenetre, comment fait on pour la faire reapparaitre depuis la fenetre non modal ? le code suivant ne fonctionne pas :

    dans fennonmodal.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
    #include <QtGui>
     
    #include "fennonmodal.h"
    #include "fenetreprincipale.h"
     
    FenNonModal::FenNonModal(QWidget *parent) :
        QDialog(parent)
    {
        showButton = new QPushButton(tr("&Show"));
        connect(showButton, SIGNAL(clicked()), FenetrePrincipale, SLOT(show()));
    // bloque sur connect bien sûr mais je sais pas quoi mettre.
        QHBoxLayout *buttonLayout = new QHBoxLayout;
        buttonLayout->addWidget(showButton);
        setLayout(buttonLayout);
    }
    Cordialement

Discussions similaires

  1. Réponses: 3
    Dernier message: 09/10/2015, 18h16
  2. Réponses: 13
    Dernier message: 16/01/2015, 11h50
  3. [AC-2007] Copier une table depuis une base vers une autre
    Par Triton972 dans le forum VBA Access
    Réponses: 3
    Dernier message: 01/11/2009, 20h27
  4. Réponses: 2
    Dernier message: 26/11/2007, 13h22
  5. Réponses: 3
    Dernier message: 16/01/2006, 17h02

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