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 :

Ajouter plusieurs QGraphicsItem dans un QGraphicsScene


Sujet :

Qt

  1. #1
    Membre régulier
    Avatar de mac&cheese
    Profil pro
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2008
    Messages : 98
    Points : 96
    Points
    96
    Par défaut Ajouter plusieurs QGraphicsItem dans un QGraphicsScene
    Bonsoir à tous,

    Decidement j'ai des soucis avec les QGraphics.
    Voila mon soucis, je voudrais ajouter plusieurs QGraphicsPixmapItem à mon QGraphicsScene mais j'ai un joli message d'erreur:
    QGraphicsScene::addItem: item has already been added to this scene
    Je cherche à faire une visionneuse d'images miniatures.
    Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    // affichage visionneuse
      QPoint posPixmapItem(0, 0);
      for (int i = 0; i < file.size(); i++) {
        QPixmap pixmapTemp(file.at(i));
        graphicsPixmapItem->setPixmap(pixmapTemp.scaled(110, 110));
        posPixmapItem.setX(120 * i);
        graphicsPixmapItem->setPos(posPixmapItem);
        graphicsScene->addItem(graphicsPixmapItem);
      }
      itemListView->setScene(graphicsScene);
      itemListView->show();
    Pour info, "file" est un QStringList contenant les chemins de mes images.
    Avez vous une petite idée d'ou viens mon probleme?
    D'apres la doc, j'ai cru comprendre qu'un QGraphicsScene peut contenir plusieurs QGraphicsItem.

    note: QGraphicsPixmapItem herite de QGraphicsItem.

    Voila j'espere avoir été assez clair.

    Merci par avance.

    Mac & Cheese

  2. #2
    Membre expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Points : 3 266
    Points
    3 266
    Par défaut
    Salut,

    Il faut que tu instancies autant de QGraphicsItem que nécessaire, or là tu te contentes de modifier et ajouter toujours le même.

  3. #3
    Membre régulier
    Avatar de mac&cheese
    Profil pro
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2008
    Messages : 98
    Points : 96
    Points
    96
    Par défaut
    Daccord je n'avais pas vu cela comme ça.
    Penses tu qu'il faudrait que j'instancie dans ma boucle dans ce cas la?

    Merci d'avoir repondu aussi rapidement.

    Mac & Cheese

  4. #4
    Membre expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Points : 3 266
    Points
    3 266
    Par défaut
    Oui, c'est même indispensable

  5. #5
    Membre régulier
    Avatar de mac&cheese
    Profil pro
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2008
    Messages : 98
    Points : 96
    Points
    96
    Par défaut
    Voici mon nouveau code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    // affichage visionneuse
      QPoint posPixmapItem(0, 0);
      for (int i = 0; i < file.size(); i++) {
        QPixmap pixmapTemp(file.at(i));
        QGraphicsPixmapItem graphicsPixmapItem(pixmapTemp.scaled(110, 110));
        posPixmapItem.setX(120 * i);
        graphicsPixmapItem.setPos(posPixmapItem);
        graphicsScene->addItem(&graphicsPixmapItem);
      }
      itemListView->setScene(graphicsScene);
      itemListView->show();
    Les images ne s'afiche pas, mais plus de warning.N'est ce pas du au faite qu'a la sortie de la boucle les QGraphicsPixmapItem sont detruits?

  6. #6
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Citation Envoyé par mac&cheese Voir le message
    Les images ne s'afiche pas, mais plus de warning.N'est ce pas du au faite qu'a la sortie de la boucle les QGraphicsPixmapItem sont detruits?
    premiere fois que je vois une question avec sa reponse.
    En faite à chaque boucle tu créé et détruit ton item

  7. #7
    Membre régulier
    Avatar de mac&cheese
    Profil pro
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2008
    Messages : 98
    Points : 96
    Points
    96
    Par défaut

    Mais je ne vois pas trop comment faire pour regler ce probleme.
    Je suis en train de me lancer dans une manipulation par un QList<QGraphicsPixmapItem>.
    Je galère!
    Vois tu une solution plus simple?

  8. #8
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Sait tu as quoi sert new

  9. #9
    Membre régulier
    Avatar de mac&cheese
    Profil pro
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2008
    Messages : 98
    Points : 96
    Points
    96
    Par défaut
    Oui.
    Mais je t'avouerais que là mon cerveau chauffe, je pense à l'envers.
    Peux tu m'eclairer?

  10. #10
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Citation Envoyé par mac&cheese Voir le message
    Oui.
    Mais je t'avouerais que là mon cerveau chauffe, je pense à l'envers.
    Peux tu m'eclairer?
    ???

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        QGraphicsPixmapItem *pGraphicsPixmapItem = new QGraphicsPixmapItem(pixmapTemp.scaled(110, 110));
        posPixmapItem.setX(120 * i);
        pGraphicsPixmapItem->setPos(posPixmapItem);
        graphicsScene->addItem(pGraphicsPixmapItem);

  11. #11
    Membre régulier
    Avatar de mac&cheese
    Profil pro
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2008
    Messages : 98
    Points : 96
    Points
    96
    Par défaut
    Desole Mongaulois, je devais etre à coté de mes pompes!
    Ca fonctionne parfaitement.

    Merci a vous deux!

    Je pose mon code, si ça peux en aider d'autres.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    // affichage visionneuse
      QPoint posPixmapItem(0, 0);
     
      for (int i = 0; i < file.size(); i++) {
        QPixmap pixmapTemp(file.at(i));
        QGraphicsPixmapItem *pGraphicsPixmapItem = new QGraphicsPixmapItem(pixmapTemp.scaled(110, 110));
        posPixmapItem.setX(120 * i);
        pGraphicsPixmapItem->setPos(posPixmapItem);
        graphicsScene->addItem(pGraphicsPixmapItem);
      }
     
      itemListView->setScene(graphicsScene);
      itemListView->show();
    Juste une petite question, l'avantage du pointeur ici, c'est qu'il n'est pas detruit, c'est ça?
    Je ne suis pas encore habitué à ces petits mecanisme.

    Mac & Cheese

  12. #12
    Membre expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Points : 3 266
    Points
    3 266
    Par défaut
    C'est exactement ça (et il sera détruit par la scène).

  13. #13
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Tu faisait du java avant, non?
    Sinon prend un peu de temps pour faire un tour dans la partie C++ de DVP. Si tu ne connait pas trop ce qu'est la memoire dynamic en C++, tu as quelque lacune à combler

  14. #14
    Membre régulier
    Avatar de mac&cheese
    Profil pro
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2008
    Messages : 98
    Points : 96
    Points
    96
    Par défaut
    Non je ne faisais pas de Java avant.
    Pour les lacunes, c'est en cours, j'ai recu hier mon petit livre C++.
    C'est surtout des petits automatismes que je n'ai pas encore.

    Bonne journée

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

Discussions similaires

  1. Ajouter plusieurs paramètres dans un lien
    Par Orb Dorb dans le forum Flash
    Réponses: 4
    Dernier message: 30/10/2008, 04h03
  2. Réponses: 3
    Dernier message: 16/06/2008, 17h27
  3. [MySQL] comment ajouter plusieurs articles dans une BD MySql+tables temporaires
    Par forbidden_fruit dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 19/05/2008, 12h00
  4. Ajouter plusieurs entrées dans une table
    Par flab78 dans le forum Débuter
    Réponses: 2
    Dernier message: 25/04/2008, 15h17
  5. requêtes ajout plusieurs données dans une table
    Par COLOMBAT dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 04/04/2008, 17h27

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