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 :

QGraphicsView et QGraphicsScene - Rien ne s'affiche [Graphics View]


Sujet :

Qt

  1. #1
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2014
    Messages : 22
    Points : 23
    Points
    23
    Par défaut QGraphicsView et QGraphicsScene - Rien ne s'affiche
    Mon objectif est de dessiner 2 courbes dans une fenêtre avec d'autres infos diverse et variées (QT 4.8.0).

    Pour le moment, j'essaye juste de voir une ligne et une ellipse mais ma fenêtre reste désespérément vide.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
            QPen pen;
            pen.setColor (Qt::red);
            pen.setWidth (4);
     
            QGraphicsScene scene;
            scene.addEllipse(-10, -10, 20, 20,pen);
            scene.addLine(10,10,200,200,pen);
     
            QGraphicsView vue(&scene);
            vue.show();



    Je ne comprend pas ce qui me manque !!!

  2. #2
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 434
    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 : 17 434
    Points : 43 065
    Points
    43 065
    Par défaut
    Ta qgraphicsscene n'est intégré dans aucun QWIdget ? QMainWindow ou autre ?
    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 à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2014
    Messages : 22
    Points : 23
    Points
    23
    Par défaut
    En effet Chrtophe, j'aurai du mettre un peu plus de code pour être plus explicite.

    Donc le code précédant fait partie d'une fonction membre de ma classe MyTest qui hérite de QWidget.
    Le constructeur appelle ma fonction afficherGraphique().
    Le fenêtre s'ouvre bien mais elle est vide !!!


    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
    #include <QtGui>
     
    class MyTest : public QWidget
    {
    public:
        MyTest ( QWidget * parent = 0, Qt::WindowFlags f = 0 ) : QWidget  (parent,f){
            afficherGraphique();
        };
     
        void afficherGraphique()
        {
            QPen pen;
            pen.setColor (Qt::red);
            pen.setWidth (4);
     
            QGraphicsScene scene;
            scene.addEllipse(-10, -10, 20, 20,pen);
            scene.addLine(10,10,200,200,pen);
     
            QGraphicsView vue(&scene);
            vue.show();
        }
    };
     
    int main(int argc, char* argv[])
    {
        QApplication app(argc, argv);
        MyTest win;
        win.resize(300, 300);
        win.show();
        return app.exec();
    }
    Ceci est juste un premier test. Ensuite, je souhaite intégrer ce code à une classe qui hérite de QDialog.

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

    Problème majeur : ta scène et ta vue déclarées dans ta méthode afficherGraphique() sont immédiatement détruis dès que tu sors de la méthode. Il est donc normal que tu ne vois rien.

    Selon ce que tu souhaites faire, je verrais plus ta classe MyTest hériter de QGraphicsView pour avoir quelque chose comme :

    mytest.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
    #ifndef MYTEST_H
    #define MYTEST_H
     
    #include <QGraphicsView>
     
    class MyTest : public QGraphicsView
    {
        QGraphicsScene scene;
    public:
        MyTest(QWidget *parent = 0);
        void buildScene();
    };
     
    #endif // MYTEST_H
    mytest.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
    #include "mytest.h"
     
    MyTest::MyTest(QWidget * parent)
      : QGraphicsView(parent)
    {
        buildScene();
        setScene(&scene);
    }
     
    void MyTest::buildScene()
    {
        QPen pen;
        pen.setColor (Qt::red);
        pen.setWidth (4);
     
        scene.addEllipse(-10, -10, 20, 20,pen);
        scene.addLine(10,10,200,200,pen);
    }

  5. #5
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2014
    Messages : 22
    Points : 23
    Points
    23
    Par défaut
    Super

    Je te remercie Winjerome

    En fait, il suffisait de déclarer ma scene comme objet de ma classe ainsi que ma fenêtre.
    Je pensais qu'il fallait qu'elles soient prêtes au moment de l'affichage uniquement mais ce n'est pas le cas.

    voici mon petit code d'essai sans l'héritage de QGraphicsView car ma classe hérite de QDialog pour ceux que ça peut intéresser.

    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
    #include <QtGui>
     
    class MyTest : public QDialog
    {
    private:
        QGraphicsScene scene;
        QGraphicsView *vue;
        QLabel *label;
        QPushButton * bouton;
    public:
        MyTest(QWidget *parent = 0);
        void buildScene();
     
     
    };
     
     
    MyTest::MyTest(QWidget * parent)
      : QDialog(parent)
    {
        label = new QLabel("Test");
        bouton = new QPushButton("Test");
        vue = new QGraphicsView(parent);
        buildScene();
        vue->setScene(&scene);
    //    setScene(&scene);
        QVBoxLayout *plan = new QVBoxLayout;
        plan->addWidget(label);
        plan->addWidget(bouton);
        plan->addWidget(vue);
        setLayout(plan);
     
    }
     
    void MyTest::buildScene()
    {
        QPen pen;
        pen.setColor (Qt::red);
        pen.setWidth (4);
     
        scene.addEllipse(-10, -10, 20, 20,pen);
        scene.addLine(10,10,200,200,pen);
    }

  6. #6
    Invité
    Invité(e)
    Par défaut
    Plutôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    vue = new QGraphicsView(parentthis);
    afin de le lier à ta boîte de dialogue et non à son parent, et ainsi être détruite en même temps.

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

Discussions similaires

  1. [CKEditor] Rien ne s'affiche
    Par Seth77 dans le forum Bibliothèques & Frameworks
    Réponses: 13
    Dernier message: 28/04/2006, 13h40
  2. [MySQL] Probleme dans ma rrequete rien ne s'affiche
    Par pod1978 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 31/03/2006, 01h49
  3. [Display lists] Rien ne s'affiche !!!
    Par guepe dans le forum OpenGL
    Réponses: 13
    Dernier message: 06/03/2006, 12h31
  4. [Eclipse3.1] Plus rien ne s'affiche dans ma console !
    Par tnodev dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 12/10/2005, 12h05
  5. [JAVASCRIPT] Rien ne s'affiche lors d'une pause
    Par stephane93fr dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 26/05/2005, 15h38

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