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 :

Ajouter plusieurs QGaphicsItem à une scène

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2010
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 62
    Par défaut Ajouter plusieurs QGaphicsItem à une scène
    bonjours a tous ,

    dans mon projet j'ai une QGraphicsScene/QGraphicsView et je voudrais ajouter plusieurs QGraphicsEllipseItem avec des coordonnées différentes a d'aide d'une boucle:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    for(int i = 0; i < 10; i++)
        {
          QGraphicsEllipsepItem* test = new QGraphicsEllipseItem(QRect);
          scene.addItem(test);
        }
     
        std::cout << scene.items().length() << std::endl;
    le problème que j'ai qu'un seul ellipse affiché dans la scene a la fois (les dernières coordonnées alors que le test scene.items().length() affiche 10 !!!

    une petite explication svp
    merci d’avance

  2. #2
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    18 299
    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 : 18 299
    Par défaut
    Je pense qu'il te manque la taille du QRect taille 0= pas d'affichage
    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
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Salut,

    Il y a deux problèmes, tous relatifs au fait que tu utilises le constructeur par défaut de QRect :

    Le premier, c'est que, par défaut, le constructeur de QRect crée un rectangle "nul" (autrement dit, un rectangle dont la hauteur et la largeur valent )

    Dans ton code, tu dis donc de créer une ellipse qui soit incluse dans un rectangle nul, ce qui est totalement impossible (comment veux tu faire rentrer quoi que ce soit dans une boite dans laquelle tu ne peux même pas placer un pixel )

    Le deuxième problème est que, par défaut, le coin supérieur gauche (et forcément le coin inférieur droit aussi, d'ailleurs) sera positionné en 0,0.

    Or, tu n'est pas sans savoir que, si tu crées une ellipse dans un rectangle de longueur L et de hauteur H, tu définis en réalité le diamètre vertical (DV) de ton ellipse à la taille de H et le diamètre horizontal (DH) de celle-ci à la taille L. (et si DH == DV, tu obtiens un cercle )

    Evidemment, si tu traces deux ellipses qui ont le même diamètre horizontal et le même diamètre vertical, tu obtiens, forcément, une forme strictement identique.

    Du coup, si tu demandes de tracer deux ellipses dans me même rectangle, tu n'en verra forcément qu'une seule, vu que la forme sera identique et placée exactement au même endroit (à moins que tu n'aies défini des couleurs différentes pour tes ellipses, mais ce n'est pas le sujet )

    Si tu veux pouvoir voir tes dix ellipses, il faut donc qu'elles soient toutes différentes soit par leur forme, soit par leur position, et cela, ca ne peut se faire qu'en fournissant un rectangle de taille ou de position particulière à chaque ellipse créée ou en précisant la position à laquelle chaque ellipse doit être placée.

    Je vais te laisser un tout petit peu chercher comment arriver à ce résultat (tu ne le retiendras que mieux)... Mais n'hésites pas à venir nous faire part du résultat
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

Discussions similaires

  1. Réponses: 4
    Dernier message: 14/11/2012, 18h32
  2. Ajouter plusieurs éléments à une List
    Par Rifton007 dans le forum VB.NET
    Réponses: 5
    Dernier message: 22/11/2011, 19h25
  3. comment ajouter plusieurs blancs à une variable
    Par sasseur dans le forum SAS Base
    Réponses: 8
    Dernier message: 20/10/2008, 12h57
  4. 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
  5. Ajouter plusieurs items à une Combobox
    Par ShortcutZ dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 16/10/2006, 09h14

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