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 Creator Discussion :

Affichage dans une fenêtre


Sujet :

Qt Creator

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2013
    Messages : 5
    Par défaut Affichage dans une fenêtre
    Bonjour,
    je travaille actuellement sur un projet en Qt C++, j'ai un petit souci dont je voudrais vous faire part.
    En fait j'ai une fenetre principale avec un message d'accueil et un bouton d'action.
    Lorsque je clique sur le bouton, une boite de dialogue s'affiche et lorsque je valide
    j'aimerais faire un nouvel affichage mais dans la fenetre principale. Comment puis je faire?

    En gros pour résumer, comment afficher différentes pages avec differents boutons dans une meme fenetre MainWindow

    Merci d'avance.

  2. #2
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 967
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 967
    Par défaut
    Hia,

    Regarde du côté de QStackedWidget.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2013
    Messages : 5
    Par défaut
    Merci, je vais tenter cela pour voir

  4. #4
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2013
    Messages : 5
    Par défaut
    Merci droggo, pour l'astuce de QStackedWidget,
    Je me suis servi finalement de QStackedLayout , j'ai regardé la doc les 2 sont pareils à quelques differences près.

    Cependant je me retrouve à nouveau devant un problème, je m'explique :

    j'ai ma fenetre principale c'est à dire mon MainWindow, quand j'effectue un choix, une boite de Dialogue que j'ai nommé Consultation s'ouvre et contient un bouton Afficher je suis en train de tester les fonctionnalités.
    Pour cela j'ai créé une fonction AfficherCourbe() dans mon MainWindow, qui me permet de masquer le contenu normal du mainwindow et de m'afficher une courbe dans ma fenetre principale. Et cela fonctionne correctement.

    Maintenant ce que je voudrais, c'est pouvoir appeler cette meme fonction AfficherCourbe() à partir de ma boite de Dialogue.

    C'est à dire lorque je lance mon MainWindow, j'ouvre la Boite de Dialogue puis quand je clique Afficher, je voudrais que ma coube apparaisse dans mon MainWindow apres fermeture du QDialogue.
    j'ai tenté de le faire en faisant MainWindow * W = new MainWindow();
    puis W->AfficherCourbe mais ça ne fonctionne pas.

    Avez vous une idée ???
    Merci de votre aide

    Voici un extrait de mon code

    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
    50
    51
    52
    53
    54
    55
    56
    //*************************mainwindow.cpp*********************************//
    
    #include "mainwindow.h"
    #include "ui_mainwindow.h"
    #include "consultation.h"
    #include "parametrage.h"
    
    
    #include <QStackedWidget>
    #include <QStackedLayout>
    #include <QWidget>
    
    
    #include <qwt_plot.h>
    #include <CGraphiques.h>
    
    MainWindow::MainWindow(QWidget *parent) :
        QMainWindow(parent),
        ui(new Ui::MainWindow)
    {
        ui->setupUi(this);
    }
    
    
    void MainWindow::ConsulterTest()
    {
        Consultation * c = new Consultation();
        c->exec();
    }
    
    void MainWindow::on_pushButton_clicked()
    {
            ConsulterTest();
    }
    
    
    //****************************consultation.cpp*********************//
    
    #include "consultation.h"
    #include "ui_consultation.h"
    
    #include "mainwindow.h"
    
    Consultation::Consultation(QWidget *parent) :
        QDialog(parent),
        ui(new Ui::Consultation)
    {
        ui->setupUi(this);
    }
    
    void Consultation::on_Afficher_clicked()
    {
            MainWindow * W = new MainWindow();
            W->AfficherCourbe();
            this->close();
    }

  5. #5
    Membre émérite
    Avatar de Daïmanu
    Homme Profil pro
    Développeur touche à tout
    Inscrit en
    Janvier 2011
    Messages
    736
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur touche à tout

    Informations forums :
    Inscription : Janvier 2011
    Messages : 736
    Par défaut
    Bonsoir.

    Code cpp : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    void Consultation::on_Afficher_clicked()
    {
            MainWindow * W = new MainWindow();
            W->AfficherCourbe();
            this->close();
    }

    Attention, tu créé une nouvelle MainWindow dans cette fonction (jamais affichée d'ailleurs puisque show() n'est pas appelé).

    Tu pourrais faire en sorte que ta boîte de Dialogue émette un signal capturé par ta fenêtre principale :

    Consultation.h
    Code cpp : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Consultation : public QDialog
    {
        //ajouter le signal
        signals:
            void request();
    };

    Consultation.cpp
    Code cpp : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Consultation::on_Afficher_clicked() {
        emit request(); //ou bien connecter ce bouton au signal dans le constructeur de Consultation
        this->close();
    }

    MainWindow.h
    Code cpp : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    MainWindow : public QMainWindow
    {
        //ajouter la méthode afficher en slot
        public slots:
            void AfficherCourbe();
    };

    MainWindow.cpp
    Code cpp : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    void MainWindow::ConsulterTest()
    {
        Consultation * c = new Consultation();
        connect(c, SIGNAL(request()), this, SLOT(AfficherCourbe()));
        c->exec();
    }
    
    void MainWindow::AfficherCourbe()
    {
        //implémentation
    }

    Je n'ai pas testé ce code mais il devrait fonctionner.

Discussions similaires

  1. Activation ou non d'une fonction d'affichage dans une fenêtre d'une image
    Par Aquarium33 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/03/2012, 11h30
  2. Affichage dans une fenètre dos
    Par pagoda dans le forum Général Java
    Réponses: 5
    Dernier message: 09/03/2009, 12h05
  3. Problème d'affichage dans une fenêtre hEdit
    Par piroman14 dans le forum Débuter
    Réponses: 3
    Dernier message: 04/07/2008, 15h29
  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