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 :

Exemple de programme simple de dessin avec QT4

  1. #1
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    258
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 258
    Par défaut Exemple de programme simple de dessin avec QT4
    Bonjour,
    Je connais bien le C++, mais je débute avec Qt4, que j'utilise intégré dans Eclipse CDT.
    Je voudrais dessiner des points, des rectangles, des cercles, bref des objets graphiques simples.
    Par analogie avec C++ Builder, j'essaie de trouver un widget sur lequel dessiner et l'équivalent du TCanvas. J'ai vu des tas d'exemples sur Internet, mais je ne suis pas parvenu à les reproduire avec Eclipse.
    Pouvez-vous me dire ce qu'il faut prendre comme widget (le Graphic Views semblait un bon candidat, mais je n'en tire rien), et quelles propriétés/méthodes de celui-ci utiliser ?
    D'avance merci

    Kimlee

  2. #2
    Membre expérimenté Avatar de MacPro
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    367
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 367
    Par défaut
    Salut, tu fais un nouvel objet dérivant par exemple de QWidget.
    Ensuite tu utilises (virtuelle donc à réimplémenter).

    virtual void paintEvent ( QPaintEvent * event )

    de là, tu utilises un QPainter et tu fais tout ce que tu veux.

    un exemple :

    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
    void maClasse::paintEvent(QPaintevent *event)
    {
         QPainter painter(this);  // Nouveau 
         painter.setWindow(rect());  // Zone de dessin = zone d'affichage du widget
         painter.setRenderHint(QPainter::Antialiasing, true);  // Antialisasing active
         painter.setPen(QPen(Qt::blue, 3, Qt::SolidLine, Qt::FlatCap, Qt::BevelJoin)); // regle le crayon (ou contour)
         painter.setBrush(Qt::red);  // pinceau de remplissage de couleur rouge
         // maintenant on dessine un cercle bleu d'epaisseur 3 remplit en rouge au milieu du widget
         // le rayon du cercle est egal au quart du cote le plus court
     
         int rayon;
         if(width() >= height())
         {
              rayon = height()/4;
         }
         else
         {
             rayon = width()/4;
         }
         painter.drawEllipse(rect().center(), rayon, rayon);
    }
    Je n'ai pas testé, mais l'idée y est

  3. #3
    Membre très actif
    Avatar de FloMo
    Homme Profil pro
    Freelance iOS
    Inscrit en
    Juillet 2004
    Messages
    726
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Freelance iOS
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 726
    Par défaut
    Le QGraphicsView est pratique si tu as besoin de faire des animations ou des choses ayant besoin de performances.

    Sinon, comme le suggère Kestufou, utilises plutôt paintEvent().

    Bon courage pour la suite.

Discussions similaires

  1. [Qt4.3.4] Dessiner avec Qt
    Par Nehmé dans le forum Débuter
    Réponses: 13
    Dernier message: 22/01/2009, 15h14
  2. Eclipse, erreurs avec un programme simple
    Par sassien dans le forum Eclipse Java
    Réponses: 5
    Dernier message: 22/01/2008, 13h28
  3. Réponses: 8
    Dernier message: 23/10/2007, 07h16
  4. programmer des graphes en C++ avec Qt4
    Par donalpho dans le forum Qt
    Réponses: 20
    Dernier message: 06/04/2007, 16h45
  5. exemple de programme avec setenv et getenv
    Par amelhog dans le forum C
    Réponses: 4
    Dernier message: 30/01/2006, 07h24

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