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

Contribuez Discussion :

GTK+ par l'exemple [Tutoriel]


Sujet :

Contribuez

  1. #1
    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 : 42
    Localisation : France

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Par d�faut GTK+ par l'exemple
    http://nicolasj.developpez.com/gtk/cours/

    Ce tutoriel a pour but de vous guider dans la r�alisation d'une interface graphique en C gr�ce � GTK+ au travers l'exemple de la r�alisation d'un �diteur de texte.
    Vous pouvez laisser un commentaire sur cet article � la suite.

  2. #2
    Membre averti
    Inscrit en
    Mars 2008
    Messages
    24
    D�tails du profil
    Informations personnelles :
    �ge : 33

    Informations forums :
    Inscription : Mars 2008
    Messages : 24
    Par d�faut
    Salut !
    Une petite remarque :
    Dans le chapitre 9, le code de la fonction open_file() est :
    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
    static void open_file (const gchar *file_name, GtkTextView *p_text_view)
    {
      g_return_if_fail (file_name && p_text_view);
      {
        gchar *contents = NULL;
     
        if (g_file_get_contents (file_name, &contents, NULL, NULL))
        {
          /* Copie de contents dans le GtkTextView */
          GtkTextIter iter;
          GtkTextBuffer *p_text_buffer = NULL;
     
          cb_new (NULL, p_text_view);
          gtk_widget_set_sensitive (GTK_WIDGET (docs.actif->p_text_view), TRUE);
          p_text_buffer = gtk_text_view_get_buffer (p_text_view);
          gtk_text_buffer_get_iter_at_line (p_text_buffer, &iter, 0);
          gtk_text_buffer_insert (p_text_buffer, &iter, contents, -1);
          /* Nous sommes obliges de remetre sauve a TRUE car l'insertion du contenu
             du fichier dans le GtkTextView a appele cb_modfie */
          docs.actif->sauve = TRUE;
        }
        else
        {
        	print_warning ("Impossible d'ouvrir le fichier %s\n", file_name);
        }
      }
    }
    qui fait appel � la fonction cb_new() dont voici le code :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    void cb_new (GtkWidget *p_widget, gpointer user_data)
    {
      /* Pour l'instant il faut allouer la memoire, par la suite on modifiera
         simplement le pointeur */
      docs.actif = g_malloc (sizeof (*docs.actif));
      docs.actif->chemin = NULL;
      /* Pour l'instant, on se contente de stocker le seul GtkTextView qui existe,
        par la suite, il faudra en creer un nouveau ! */
      docs.actif->p_text_view = GTK_TEXT_VIEW (user_data);
      /* Le document vient d'etre creer, il n'est donc pas modifie */
      docs.actif->sauve = TRUE;
      gtk_widget_set_sensitive (GTK_WIDGET (docs.actif->p_text_view), TRUE);
    }
    on voit donc qu'il y a une double utilisation (dans cb_new() et de nouveau dans open_file() juste apr�s l'appel � cb_new()) de :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    gtk_widget_set_sensitive (GTK_WIDGET (docs.actif->p_text_view), TRUE);
    on peut donc le supprimer de la fonction open_file(), o� il ne sert � rien !
    Sinon on peut remarquer aussi que entre le chapitre 8 et le chapitre 9 on ne convertit plus le contents du codage locale vers utf8. Quand on modifie notre fonction open_file() dans le chapitre 9, on peut donc laisser les instructions pour la conversion, comme dans le chapitre 8...

    Voil�... Personnellement arriv� � ce code j'avais peur de mal avoir compris un truc, donc si �a peut �tre utile � quelqu'un, tant mieux !
    Sinon le tuto est bien fait (surtout la d�marche plus orient�e "pratique" d'apprendre un peu GTK+ en faisant un projet, ici l'�diteur de texte donc), et int�ressant, donc que du bon !

  3. #3
    Membre confirm� Avatar de stallaf
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    79
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 79
    Par d�faut Fonctions d�pr�ci�es
    Bonjour,
    Chapitre 4 : gcc me signale que la fonction gtk_vbox_new est d�pr�ci�e.
    Voici la nouvelle :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     /* Création du conteneur principal */
    p_main_box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
    Bon maintenant avec une date de publication du 28 juin 2006 ... y a pas de mal
    Bye.

    Chapitre 5 : la fonction gtk_hbutton_box_new est d�pr�ci�e.
    Voici la nouvelle :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     /* Creation du conteneur pour les boutons */
    p_button_box = gtk_button_box_new (GTK_ORIENTATION_HORIZONTAL);

Discussions similaires

  1. [LIVRE] ruby par l'exemple
    Par ash.ice.loky dans le forum Ruby
    R�ponses: 8
    Dernier message: 05/03/2007, 21h40
  2. R�ponses: 36
    Dernier message: 09/09/2006, 03h06

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