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 :

Affichage de plusieurs QPixmap [2D/3D]


Sujet :

Qt

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Aruba

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2014
    Messages : 2
    Par défaut Affichage de plusieurs QPixmap
    Bonjour, je suis débutant sur Qt et j'ai fait le pari fou de me lancer dans un petit jeu en 2D...
    Je rencontre ici un problème : lorsque que je tente de générer ma carte d'arrière plan dans une scène QGraphicsScene, la fenêtre s'ouvre, mais les images composant la map ne se chargent pas.

    La map est formée par une liste de QVector3D, dont les deux premières coordonnées définiront les coordonnées d'un point de ma map, tandis que la troisième définira le type de matériau composant la map en ce point. L'image associé au matériau "0" est bien stockée dans "img/0.png", je peux le vérifier lorsque je n'en charge qu'une...

    Voici un morceau du code, pendant la compilation, le debugger m'affiche : "QGraphicsScene::addItem: item has already been added to this scene"

    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
    //Display the map
    QGraphicsScene scene;
    view = new QGraphicsView(scene);
     
    QGraphicsPixmapItem tempGraphItem;
    QList<QVector3D> map = pG->getMap();
    QPixmap tempPixmap;
     
    for(int i(0);i<map.length();i++)
    {
        tempPixmap.load("img/" + QString::number(map[i].z()) + ".png");
        tempGraphItem.setPixmap(tempPixmap);
        tempGraphItem.setPos(map[i].x() * tempPixmap.width() , map[i].y() * tempPixmap.height());
        scene->addItem(&tempGraphItem);
     
    }
     
    view->show();
    Merci d'avance pour votre aide !

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    Ne se chargent pas ... ou ne s'affichent pas ?

    En effet, dans ta boucle tu utilises encore et toujours le même QGraphicsPixmapItem que tu déclares ligne 5. Tu l'ajoutes donc map.length() fois à ta scène, d'où le message (durant l'exécution plutôt)

    Il te faut utiliser des pointeurs comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    for(int i(0) ; i<map.length() ; i++)
    {
        QPixmap tempPixmap( QString("img/%0.png").arg(map[i].z()) );
        QGraphicsPixmapItem * tempGraphItem = new QGraphicsPixmapItem;
        tempGraphItem->setPixmap(tempPixmap);
        tempGraphItem->setPos(map[i].x() * tempPixmap.width() , map[i].y() * tempPixmap.height());
        scene->addItem(tempGraphItem);
    }

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Aruba

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2014
    Messages : 2
    Par défaut Merci !
    Merci beaucoup ! Ça marche ! C'est dur d'y croire mais oui, les pointeurs peuvent sauver la vie de quelqu'un !

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

Discussions similaires

  1. Affichage sur plusieurs lignes d'une méthode toString
    Par Flophx dans le forum Interfaces Graphiques en Java
    Réponses: 9
    Dernier message: 24/05/2006, 16h30
  2. affichage de plusieurs rectangles
    Par lechewal dans le forum GTK+ avec C & C++
    Réponses: 2
    Dernier message: 02/05/2006, 18h52
  3. Réponses: 7
    Dernier message: 26/09/2005, 17h50
  4. Réponses: 2
    Dernier message: 09/10/2004, 11h35
  5. [DirectDraw7] Affichage de plusieurs image bmp
    Par SteelBox dans le forum DirectX
    Réponses: 3
    Dernier message: 24/04/2004, 19h00

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