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 :

Les boutons de la toolbar ne s'affichent pas.


Sujet :

GTK+ avec C & C++

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2012
    Messages : 56
    Points : 48
    Points
    48
    Par défaut Les boutons de la toolbar ne s'affichent pas.
    Bonjour,

    J'utilise mingw et gtk 2, quand j'éxécute le programme les boutons de la toolbar ne s'affichent pas, et il n'y a aucun message d'erreur GTK. 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
    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
    42
    43
    44
    45
    46
    47
    48
    49
     
    GtkWidget * create_window_editor() {
     
      // Création de la fenêtre:
      GtkWidget * window_editor = gtk_window_new(GTK_WINDOW_TOPLEVEL);
      gtk_window_set_default_icon_name("text-editor");
      gtk_window_set_default_size(GTK_WINDOW (window_editor),800,600);
      g_signal_connect(G_OBJECT (window_editor), // source instance
                       "delete-event", // source signal
                       G_CALLBACK (gtk_widget_hide_on_delete), // callback
                       NULL); // extra data to pass to callback
      gtk_widget_show(window_editor);
     
      GtkAccelGroup * accel_group = gtk_accel_group_new ();
     
      gtk_window_set_title (GTK_WINDOW (window_editor), "Editor");
     
      GtkWidget * vbox10 = gtk_vbox_new (FALSE, 0);
      gtk_widget_show (vbox10);
      gtk_container_add (GTK_CONTAINER (window_editor), vbox10);
     
     
      // création de la toolbar:
      GtkWidget * toolbar1 = gtk_toolbar_new ();
      gtk_widget_show (toolbar1);
      gtk_box_pack_start (GTK_BOX (vbox10), toolbar1, FALSE, FALSE, 0);
      gtk_toolbar_set_style (GTK_TOOLBAR (toolbar1), GTK_TOOLBAR_BOTH);
      GtkIconSize * tmp_toolbar_icon_size = gtk_toolbar_get_icon_size (GTK_TOOLBAR (toolbar1));
     
      // création des boutons:
      GtkToolItem * tbutton_new = gtk_tool_button_new(NULL,NULL);
      gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON(tbutton_new),"document-new");
      gtk_toolbar_insert(GTK_TOOLBAR(toolbar1),tbutton_new,-1);
     
      GtkToolItem * tbutton_open = gtk_tool_button_new(NULL,NULL);
      gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON(tbutton_open),"document-open");
      gtk_toolbar_insert(GTK_TOOLBAR(toolbar1), tbutton_open, -1);
     
      GtkToolItem * tbutton_save = gtk_tool_button_new(NULL,NULL);
      gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON(tbutton_save),"document-save");
      gtk_toolbar_insert(GTK_TOOLBAR(toolbar1), tbutton_save, -1);
     
      GtkToolItem * tsep = gtk_separator_tool_item_new();
      gtk_toolbar_insert(GTK_TOOLBAR(toolbar1), tsep, -1);
     
      GtkToolItem * tbutton_terminal = gtk_tool_button_new(NULL,"test");
      gtk_toolbar_insert(GTK_TOOLBAR(toolbar1), tbutton_terminal, -1);
     
    }

  2. #2
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 291
    Points : 4 941
    Points
    4 941
    Billets dans le blog
    5
    Par défaut
    La ligne 12 devrait plutôt se trouver avant gtk_main();. De plus il faut utiliser gtk_widget_show_all(window_editor);

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2012
    Messages : 56
    Points : 48
    Points
    48
    Par défaut
    Merci. J'ai aussi trouvé une autre solution, recaster le GktToolItem en GtkWidget et appeler la fonction: gtk_widget_show((GtkWidget*)tbutton_new);

    Pour afficher du texte sur le bouton, il faut en plus faire un appel à gtk_tool_item_set_is_important(tbutton_compile,TRUE);

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SBI GEO] Les fenêtres détails de GUI_SETTINGS ne s'affichent pas avec firefox
    Par rotsilaina dans le forum SpagoBI
    Réponses: 0
    Dernier message: 11/03/2011, 09h48
  2. Les données des fichiers klm ne s'affichent pas sous IE8
    Par seben dans le forum IGN API Géoportail
    Réponses: 2
    Dernier message: 07/10/2009, 14h39
  3. [CENTOS] les accents de mon texte ne s'affichent pas
    Par PrincessKC dans le forum RedHat / CentOS / Fedora
    Réponses: 0
    Dernier message: 20/04/2009, 18h55
  4. [CKEditor] FckEditor 2.63 Toolbar ne s'affiche pas avec Firefox
    Par manaboko dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 20/10/2008, 15h01
  5. [CKEditor] ToolBar ne s'affiche pas avec safari et opera
    Par Philouphrq dans le forum Bibliothèques & Frameworks
    Réponses: 3
    Dernier message: 23/05/2008, 20h08

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