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 :

programmer des graphes en C++ avec Qt4


Sujet :

Qt

  1. #1
    Futur Membre du Club
    Administrateur de base de données
    Inscrit en
    Mars 2007
    Messages
    20
    Détails du profil
    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Mars 2007
    Messages : 20
    Points : 6
    Points
    6
    Par défaut programmer des graphes en C++ avec Qt4
    Bonjour,
    je dois programmer des graphes(UML,Merise,Triangle,Rectangle,Cercle...)en C++.
    pour le moment j'ai aucune idée pour commencer et j'ai besoin d'aide.
    s'il ya quelqu'un qui s'y connait unpeu,il est la bienvenue.
    Merci

  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,

    Tout dépend de la version de Qt que tu peux utiliser:
    > 3.x: QCanvas
    > 4.2+: QGraphics* (QGraphicsScene, QGraphicsView, QGraphicsItem...)

    Si tu as la 4.0 ou 4.1, tu peux soit utiliser la classe Q3Canvas, soit développer ton propre widget. La première possibilité étant à éviter pour ce qui est de l'extensibilité de ton programme, la classe QCanvas étant dépréciée avec le passage à Qt4.

  3. #3
    Futur Membre du Club
    Administrateur de base de données
    Inscrit en
    Mars 2007
    Messages
    20
    Détails du profil
    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Mars 2007
    Messages : 20
    Points : 6
    Points
    6
    Par défaut
    j'ai la version Qt4.2.1

  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
    Les classes QGraphics* sont ta voie alors

  5. #5
    Futur Membre du Club
    Administrateur de base de données
    Inscrit en
    Mars 2007
    Messages
    20
    Détails du profil
    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Mars 2007
    Messages : 20
    Points : 6
    Points
    6
    Par défaut graphe
    bonjour,
    j'aimerai ecrire un texte ds un graphe que j'ai fait et je sais pas trop par où commencé.
    le texte sera par defaut "association" et ke je pourrai le changer.
    ps: vous pouvez voir le graphe dans le fichier joint.
    Merci de votre comprehension.
    Fichiers attachés Fichiers attachés

  6. #6
    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
    Aïe, ça, c'est le sujet qui pose problème :p
    Les items texte dans QGraphics avec 4.2 ne sont pas disponibles. Tu as 2 possibilités:
    > créer un pixmap où tu dessines ton texte, puis tu l'affiches avec un QGraphicsPixmapItem
    > utiliser Qt4.3 rc1 dans laquelle est inclus une telle possibilité (pour avoir un aperçu de comment c'est fait, lire le blog de trolltech labs)

  7. #7
    Futur Membre du Club
    Administrateur de base de données
    Inscrit en
    Mars 2007
    Messages
    20
    Détails du profil
    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Mars 2007
    Messages : 20
    Points : 6
    Points
    6
    Par défaut
    j'ai pas bien compris,je l'ajoute directement à mon prog ou g dois créer un new prog pour le texte

  8. #8
    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
    Ben, soit tu met à jour ta version de Qt vers une version qui est une candidate à la définitive, soit tu attends la 4.3 définitive.
    Soit tu restes à la 4.2.1 et tu ajoutes dans ton prog une classe qui s'appellerait par exemple GraphicsLabel qui dériverait de QGraphicsPixmapItem et à laquelle tu ajouterais une méthode setText(QString label) qui se chargerait de créer un QPixmap avec le texte voulu.

  9. #9
    Futur Membre du Club
    Administrateur de base de données
    Inscrit en
    Mars 2007
    Messages
    20
    Détails du profil
    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Mars 2007
    Messages : 20
    Points : 6
    Points
    6
    Par défaut
    Est ce que tu p me faire un aperçu du prog avec QT 4.2

  10. #10
    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
    Non, pas le temps là, j'ai du boulot :/
    Par contre, pour te donner des pistes, regarde du côté de:
    > QGraphicsPixmapItem pour la partie... item/QGraphicsScene
    > QPixmap pour l'affichage du label,
    > QPainter pour le dessin du texte
    > QFontInfo et QFont pour calculer la taille du pixmap à partir de ta chaîne et de la police à utiliser

  11. #11
    Futur Membre du Club
    Administrateur de base de données
    Inscrit en
    Mars 2007
    Messages
    20
    Détails du profil
    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Mars 2007
    Messages : 20
    Points : 6
    Points
    6
    Par défaut
    ok merci bcp,je vais voir ce que je peux faire

  12. #12
    Futur Membre du Club
    Administrateur de base de données
    Inscrit en
    Mars 2007
    Messages
    20
    Détails du profil
    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Mars 2007
    Messages : 20
    Points : 6
    Points
    6
    Par défaut
    slt,
    j'arrive toujours pas à ecrire le texte et s'il vous plait aidez-moi.
    Merci

  13. #13
    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
    Ok, montre ce que tu as fait alors stp.

  14. #14
    Futur Membre du Club
    Administrateur de base de données
    Inscrit en
    Mars 2007
    Messages
    20
    Détails du profil
    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Mars 2007
    Messages : 20
    Points : 6
    Points
    6
    Par défaut
    jai ajouté:painter.drawText(rect(), Qt::AlignCenter, "Association");dans
    void SortingBox::paintEvent(QPaintEvent * /* event */) mais il ne m'affiche que le texte sur l'ecran pas dans l'ellipse.

  15. #15
    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
    Montre le code de SortingBox::paintEvent stp.
    Tu as une raison particulière pour ne pas utiliser les classes QGraphics* alors? Ca m'a l'air plus adapté que des widgets :/

  16. #16
    Futur Membre du Club
    Administrateur de base de données
    Inscrit en
    Mars 2007
    Messages
    20
    Détails du profil
    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Mars 2007
    Messages : 20
    Points : 6
    Points
    6
    Par défaut
    ok,voici le code:
    void SortingBox::paintEvent(QPaintEvent *)
    { QPainter painter(this);
    foreach (ShapeItem shapeItem, shapeItems) {
    painter.translate(shapeItem.position());
    painter.setBrush(shapeItem.color());
    painter.drawPath(shapeItem.path());
    painter.translate(-shapeItem.position());
    painter.drawText(QRect(0,0,150,50),Qt::AllignCenter,"Association");
    }
    }

  17. #17
    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
    mais il ne m'affiche que le texte sur l'ecran pas dans l'ellipse.
    Ben, d'après ton code, tu l'affiches avec un rect configuré avec des valeurs absolues, donc il est possible que tu le dessines en dehors.

    Sinon, tu peux toujours poster un screen du résultat obtenu maintenant, et éventuellement un screen traffiqué pour correspondre à ce que tu veux. On gagnera du temps en explication

    Mais là, tu vas perdre un temps fou à ne pas utiliser les QGraphics... Enfin, pour ce que j'en dis

  18. #18
    Futur Membre du Club
    Administrateur de base de données
    Inscrit en
    Mars 2007
    Messages
    20
    Détails du profil
    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Mars 2007
    Messages : 20
    Points : 6
    Points
    6
    Par défaut
    voila j'ai afiché le texte ds le cercle mais je voudrais cliké la dessus pour pouvoir changer le texte mais j'arrive pas.
    voila le code:
    Fichiers attachés Fichiers attachés

  19. #19
    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
    Tout dépend ce que tu veux faire, t'es pas super clair dans tes description :s
    De but en blanc, je te dirais d'appeler un QInputDialog dans ton mousePressEvent, c'est une façon simple et efficace de demander une valeur à l'utilisateur.

  20. #20
    Futur Membre du Club
    Administrateur de base de données
    Inscrit en
    Mars 2007
    Messages
    20
    Détails du profil
    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Mars 2007
    Messages : 20
    Points : 6
    Points
    6
    Par défaut
    g pa bien capté.
    pour le texte je veux pouvoir cliker dessus et après changer le texte pr le remplacer.
    si tu pouvais mieux m'expliquer le QInputDialog.
    Merci

Discussions similaires

  1. programmation des Logiciels de gestion avec C/C++ acces.
    Par rufa11 dans le forum C++Builder
    Réponses: 2
    Dernier message: 29/05/2010, 22h55
  2. Problème d'affichage des graphes avec Tomcat
    Par _Janu_ dans le forum BIRT
    Réponses: 11
    Dernier message: 20/09/2006, 15h30
  3. tracer des graphes avec php
    Par estampille dans le forum Langage
    Réponses: 1
    Dernier message: 19/07/2006, 18h28
  4. Réponses: 4
    Dernier message: 28/04/2006, 23h21

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