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 :

Afficher une image

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2011
    Messages : 22
    Par défaut Afficher une image
    Mon Main.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #include <QtGui/QApplication>
    #include "maf.h"
     
    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);
        MaF w;
        w.show();
     
        return a.exec();
    }
    Mon MaF.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
    #include "maf.h"
     
    MaF::MaF()
    {
        QMdiArea *zoneCentrale2 = new QMdiArea;
        QMdiSubWindow *zoneTexte1 = new QMdiSubWindow;
     
        QMdiSubWindow *sousFenetre1 = zoneCentrale2->addSubWindow(zoneTexte1);
        setCentralWidget(zoneCentrale2);
        QGraphicsScene scene;
     
                QPixmap monPixmap("ouvrir.png");
                scene.addPixmap(monPixmap);
     
     
                QRect rectangle(-8, -4, 100, 100);
                QPen pen(Qt::blue, 1, Qt::SolidLine);
                scene.addRect(rectangle, pen);
                scene.setBackgroundBrush(Qt::white);
     
    QGraphicsView *vue = new QGraphicsView(&scene, sousFenetre1);
     
                vue->setFixedSize(250, 250);
    vue->move(100,100);
                vue->show();
    }
    Et mon MaF.h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #ifndef MAF_H
    #define MAF_H
    #include <QtGui>
    #include <QMainWindow>
    class MaF : public QMainWindow
    {
    public:
        MaF();
        QMdiSubWindow *sousFenetre1;
    };
     
    #endif // MAF_H
    Je veux afficher une image dans une sous fenêtre de ma fenêtre principale mais l'image ne s'affiche pas.
    Pourquoi?

  2. #2
    Rédacteur
    Avatar de Amnell
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    1 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 840
    Par défaut
    Bonjour,

    Dans un premier temps, je me dois de vous informer que lorsque vous faites :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        QMdiSubWindow *sousFenetre1 = zoneCentrale2->addSubWindow(zoneTexte1);
        setCentralWidget(zoneCentrale2);
    Vous n'utilisez pas votre pointeur défini dans le .h. La bonne méthode est de faire ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        sousFenetre1 = zoneCentrale2->addSubWindow(zoneTexte1);
        setCentralWidget(zoneCentrale2);
    Après, quand vous faites :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    MaF::MaF()
    {
        // ...
        QGraphicsScene scene;
        // ...
    }
    Comme scene est une variable, elle sera détruite à l'arrivée à l'accolade fermant la déclaration du constructeur MaF (cf la durée de vie des variables). La solution est d'utiliser un pointeur de QGraphicsScene, ce qui permettra à l'image de s'afficher :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    MaF::MaF()
    {
        // ...
        QGraphicsScene *scene = new QGraphicsScene;
        // ...
    }
    Bonne continuation,
    Amnell.
    N'oubliez pas de consulter la FAQ Qt ainsi que les cours et tutoriels C++/Qt !

    Dernier article : Débuter avec les Enlightenment Foundation Libraries (EFL)
    Dernières traductions : Introduction à Qt Quick - Applications modernes avec Qt et QML
    Vous cherchez un livre sur Qt 5, Qt Quick et QML ? Créer des applications avec Qt 5 - Les essentiels

Discussions similaires

  1. [VB.NET] afficher une image stockée dans une table
    Par matonfire dans le forum ASP.NET
    Réponses: 4
    Dernier message: 19/03/2004, 11h21
  2. Afficher une image JPG qui se trouve dans une bdd
    Par Harry dans le forum Bases de données
    Réponses: 6
    Dernier message: 27/02/2004, 10h51
  3. Charger et afficher une image jpg avec les mfc
    Par glop - pas glop dans le forum MFC
    Réponses: 3
    Dernier message: 11/02/2004, 18h59
  4. Réponses: 2
    Dernier message: 04/02/2004, 22h32
  5. Afficher une image sans passer par les textures
    Par Black_Daimond dans le forum DirectX
    Réponses: 3
    Dernier message: 09/05/2003, 19h13

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