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 :

gdk_draw_line : impossible de dessiner une ligne


Sujet :

GTK+ avec C & C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Inscrit en
    Novembre 2008
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 2
    Par défaut gdk_draw_line : impossible de dessiner une ligne
    Bonjour,

    Je débute en GTK+, et j'ai trouvé le bout de code que je cherchais.

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    #include <stdlib.h>
    #include <gdk/gdk.h>
    #include <gtk/gtk.h>
     
    gboolean Dessiner(GtkWidget *aire_de_dessin, GdkEventConfigure *event)
    {
        gdk_draw_line(aire_de_dessin, aire_de_dessin->style->black_gc, 0, 0, 50, 50);
     
        return TRUE;
    }
     
    int main (int argc, char *argv[])
    {
      // initialisation de gtk+
      gtk_init (&argc, &argv);
     
      // création de la fenêtre de dessin
      GtkWidget *fenetre = gtk_window_new(GTK_WINDOW_TOPLEVEL);
      // fermeture de l'application entière en cas d'appui sur la croix
      g_signal_connect (G_OBJECT (fenetre), "destroy", G_CALLBACK (gtk_main_quit), NULL);
     
      // affichage de la fenêtre
      gtk_widget_show(fenetre);
     
      // création de l'aire de dessin
      GtkWidget *aire_de_dessin = gtk_drawing_area_new();
     
      // on spécifie la fenêtre dans laquelle se trouve l'aire de dessin
      gtk_container_add(GTK_CONTAINER(fenetre), aire_de_dessin);
     
      gtk_widget_set_size_request (aire_de_dessin, 100, 100);
     
      // appel des fonctions de réalisation et de rafraichissement
      g_signal_connect(G_OBJECT(aire_de_dessin), "realize", G_CALLBACK(Dessiner), NULL);
     
      // lancement de la boucle principale
      gtk_main();
     
      return 0;
    }
    J'ai compilé avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ gcc dessin01.c -o dessin01 `pkg-config --cflags --libs gtk+-2.0`
    et en retour j'ai:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    dessin01.c: In function ‘Dessiner’:
    dessin01.c:7: attention : passing argument 1 of ‘gdk_draw_line’ from incompatible pointer type
    Le programme s'exécute, la fenêtre s'affiche, mais pas de dessin de la ligne

    Avez vous une idée ?

    Merci

    PS: Ubuntu 8.10

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 259
    Par défaut
    Tu passes un mauvais argument n°1 à gdk_draw_line...

  3. #3
    Nouveau candidat au Club
    Inscrit en
    Novembre 2008
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 2
    Par défaut
    Citation Envoyé par teuf13 Voir le message
    Tu passes un mauvais argument n°1 à gdk_draw_line...
    Oui, je suis bien d'accord
    Mais quel parametre faut-il passer pour que ça fonctionne? J'en ai essayé plusieurs et rien à faire, toujours pas de ligne de dessinée et toujours ce warning

    Merci

  4. #4
    Membre Expert
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 259
    Par défaut
    Tant que tu auras ce warning, tu n'auras pas de ligne d'affichée. gdk_draw_line attend quel type d'objet ?

  5. #5
    Membre confirmé Avatar de skip78
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 247
    Par défaut
    J'ai pourtant jamais utilisé cette fonction, mais l'appel d'une fonction gdk avec un gtk widget, c'est juste improbable ^^

    => Un coup d'oeuil à la doc, et on voit que ce qui est attendu est un :

    GdkDrawable *airededessin

    (GdkDrawable

    typedef struct _GdkDrawable GdkDrawable;

    An opaque structure representing an object that can be drawn onto. This can be a GdkPixmap, a GdkBitmap, or a GdkWindow. )

    et non pas un GtkWidget

    Voilou, ca devrait pas poser de probleme, le GTK c'est eZ

Discussions similaires

  1. Dessiner une ligne
    Par hbzied dans le forum Interfaces Graphiques en Java
    Réponses: 4
    Dernier message: 26/04/2006, 20h01
  2. Comment dessiner une ligne dans un Chart ?
    Par libititi dans le forum Composants VCL
    Réponses: 3
    Dernier message: 16/06/2005, 14h56
  3. [Image]Dessiner une ligne en dynamique
    Par Bugmaster dans le forum AWT/Swing
    Réponses: 8
    Dernier message: 02/08/2004, 11h56
  4. Dessiner une ligne
    Par Bugmaster dans le forum 2D
    Réponses: 6
    Dernier message: 29/07/2004, 08h36
  5. Dessiner une ligne dans un cube transparent ?
    Par Muetdhiver dans le forum OpenGL
    Réponses: 4
    Dernier message: 04/05/2004, 11h06

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