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

GTK+ avec C & C++ Discussion :

affichage de plusieurs rectangles


Sujet :

GTK+ avec C & C++

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 95
    Points : 66
    Points
    66
    Par défaut affichage de plusieurs rectangles
    Bonjour a tous.. j'espère que le forum n'est pas trop desaproprié..

    pour un projet systeme je dois faire une petite interface graphique.
    donc je me suis dit qu'en C, gtk etait surement le plus simple..

    mon but final est d'afficher une sorte de graphe, c'est a dire des noeuds reliés par des arcs.

    pour me familiariser un peu avec la bete, j'ai essayé de faire une fonction qui dessine un rectangle

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    static void rectangle(GtkWidget *aire_de_dessin, int x, int y, int width, int height) { 
       gdk_draw_rectangle(pixmap, aire_de_dessin->style->black_gc, TRUE, x, y, width, height); 
     
       gtk_widget_queue_draw( aire_de_dessin );    
    }
    celle ci fonctionne

    mais quand je fais une boucle qui appelle plusieurs fois cette fonction avec des parametres differents, il ne m'affiche qu'un seul rectangle..

    j'ai bien une fonction reliée à "expose_event". Est ce la qu'il faut faire les affichages ?

    Je suis vraiment débutant

    a+

  2. #2
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    A mon avis, cela vient de cet appel:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gtk_widget_queue_draw( aire_de_dessin );
    Cela demande de redessiner la widget donc à chaque appel...

    Essaie de faire cet appel à la fin de ta boucle...

    Jc

  3. #3
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Points : 11 625
    Points
    11 625
    Par défaut
    Citation Envoyé par lechewal
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    static void rectangle(GtkWidget *aire_de_dessin, int x, int y, int width, int height) { 
       gdk_draw_rectangle(pixmap, aire_de_dessin->style->black_gc, TRUE, x, y, width, height); 
     
       gtk_widget_queue_draw( aire_de_dessin );    
    }
    C'est quoi pixmap ? Une variable globale ?

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. Réponses: 7
    Dernier message: 26/09/2005, 17h50
  3. [VB.NET] Dessiner plusieurs rectangles.
    Par Emcy dans le forum Windows Forms
    Réponses: 9
    Dernier message: 23/03/2005, 16h57
  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