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 :

insertion icon dans bouton toolbar


Sujet :

GTK+ avec C & C++

  1. #21
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    1 124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 124
    Par défaut
    Bonsoir tout le monde

    J'ai réglé le problème du warnig

    Voici le code actuel

    Il fallait ajouter GTK_WIDGET

    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
     
    void barreoutil(composant * e)
    {
    e->toolbar =gtk_toolbar_new();     
    gtk_box_pack_start(GTK_BOX(e->vbox),e->toolbar,FALSE,FALSE,0);    
     
     
    e->iconnew= gtk_image_new_from_file("./icon/new_gif.gif");           
    e->buttonnew = GTK_WIDGET(gtk_tool_button_new(e->iconnew,"Nouveau"));     
     
     
     
    e->icondoss = gtk_image_new_from_file("./icon/open_gif.gif");     
    e->buttonrep = GTK_WIDGET(gtk_tool_button_new(e->icondoss,"Dossier"));    
     
    }
    La compil se passe bien mai rien ne s'affiche, lors de la fermeture il y a une erreur d'execution.

    Je pense qu'il manque quelque chose.

    Pouvez vous m'aider.

    Merci

    Cordialement

    A bientôt

  2. #22
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    1 124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 124
    Par défaut
    Bonsoir tout le monde.

    J'ai un peu avancé.

    Mai j'ai quand même un petit souci.

    Voici le code de la barreoutil.c
    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
     
    #include <gtk/gtk.h>
    #include "structure.h"
     
    void barreoutil(composant * e)
    {
    e->toolbar =gtk_toolbar_new();     
    gtk_box_pack_start(GTK_BOX(e->vbox),e->toolbar,FALSE,FALSE,0);    
     
     
    e->iconnew= gtk_image_new_from_file("./icon/new_gif.gif");           
    e->buttonnew = GTK_WIDGET(gtk_tool_button_new(e->iconnew,"Nouveau"));     
    gtk_toolbar_insert(
    e->toolbar,
    e->buttonnew
    ,1);   
     
     
    e->icondoss = gtk_image_new_from_file("./icon/open_gif.gif");     
    e->buttonrep = GTK_WIDGET(gtk_tool_button_new(e->icondoss,"Dossier"));    
    gtk_toolbar_insert(
    e->toolbar
    ,e->buttonrep
    ,0); 
     
    e->iconapercu = gtk_image_new_from_file("./icon/apercu.ico");
    e->buttonapercu = GTK_WIDGET(gtk_tool_button_new(e->iconapercu,"Aperçu"));    
    gtk_toolbar_insert(
    e->toolbar,
    e->buttonapercu
    ,0);
    Mon problème est le gint, j'ignore quoi mettre.

    Voici la faq

    http://developer.gnome.org/doc/API/2...toolbar-insert

    Noublié pas que j'utilise la derniere version de gtk.

    Que dois je faire là.

    Cordialement

    A bientôt

  3. #23
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Citation Envoyé par argon
    Mon problème est le gint, j'ignore quoi mettre.
    Salut !


    Le dernier paramètre est tout simplement la position du bouton dans la barre d'outils, son index si tu préfères

    If pos is negative, the item is appended to the end of the toolbar.
    En d'autres termes, si tu ne sais pas trop où le placer ton bouton ou tu veux simplement qu'il se mette à la fin de la barre d'outils, tu mets une valeur négative et il ira donc se positionner à la fin
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  4. #24
    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
    Citation Envoyé par Franck.H
    C'est le dernier paramètre est tout simplement la position du bouton dans la barre d'outils, son index si tu préfères
    Et si tu n'as pas envie de t'en préocuper, 0 ajoutera l'élément au début et un nombre négatif, à la fin

  5. #25
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Citation Envoyé par gege2061
    Et si tu n'as pas envie de t'en préocuper, 0 ajoutera l'élément au début
    Mouais j'ai oublié le début ... chuis pas encore bien reveillé
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  6. #26
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    1 124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 124
    Par défaut
    Bonjour tout le monde

    Voici le code actuel

    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
     
    #include <gtk/gtk.h>
    #include "structure.h"
     
     
     
    void barreoutil(composant * e)
    {
    e->toolbar =gtk_toolbar_new();     
    gtk_box_pack_start(GTK_BOX(e->vbox),e->toolbar,FALSE,FALSE,0);    
     
     
    e->iconnew= gtk_image_new_from_file("./icon/new_gif.gif");           
    e->buttonnew = GTK_WIDGET(gtk_tool_button_new(e->iconnew,"Nouveau"));     
    gtk_toolbar_insert(
    e->toolbar,
    e->buttonnew,
    0);   
     
     
    e->icondoss = gtk_image_new_from_file("./icon/open_gif.gif");     
    e->buttonrep = GTK_WIDGET(gtk_tool_button_new(e->icondoss,"Dossier"));    
    gtk_toolbar_insert(
    e->toolbar,
    e->buttonrep,
    0); 
     
    e->iconapercu = gtk_image_new_from_file("./icon/apercu.ico");
    e->buttonapercu = GTK_WIDGET(gtk_tool_button_new(e->iconapercu,"Aperçu"));    
    gtk_toolbar_insert(
    e->toolbar,
    e->buttonapercu,
    0);
     
    }

    Voici l'erreur

    Permission denied
    ld returned 1 exit status
    Makefile.win [Build Error] [mytext.exe] Error 1
    L'erreur vient de 0 de buttonnew.

    la je vois pas.

    Cordialement

    A+

  7. #27
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Permission denied
    ld returned 1 exit status
    Makefile.win [Build Error] [mytext.exe] Error 1
    Heu vérifie bien dans ta liste des processus que ton programme ne tourne pas en tache de fond. Une mauvaise gestion de l'arrêt du programme peut engendrer ce type de comportement et à cause de ca, l'éditeur de liens ne peut pas achever son travail car ton programme tourne peut être encore !
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  8. #28
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    1 124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 124
    Par défaut
    Re

    Je ne comprend pas, et je ne vois pas comment faire ce que tu m'explique.

    A+

  9. #29
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Citation Envoyé par argon
    Re

    Je ne comprend pas, et je ne vois pas comment faire ce que tu m'explique.

    A+
    Sauf si tu redémarre entre temps, ton processus ne sera plus actif (normal) donc la compilation devrais bien se passer sinon, si tu est toujours sur la même session, sous Windows tu fait la combinaison bien connue de tous (enfin je pensais de tous): Ctrl + Alt + Suppr.

    Ceci t'ouvres le gestionnaire de tâches et là tu vas sur l'onglet Processus et tu regardes si tu ne vois le nom de ton exe qui traîne dans le coin. Si oui, bin tu le sélectionne et tu cliques sur le bouton Fin de tâches !

    Sous Linux suivant le Desktop Manager c'est sensiblement identique comme avec Gnome par exemple ! Avant de vouloir programmer il faudrait peut-être apprendre à mieux connaître son OS préféré sinon ca risque de pas le faire !

    Si cette solution ne fonctionne pas et que même après un reboot du PC c'est identique, zip ton code complet et met le en pièce jointe dans ton prochain post que je test chez moi !
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  10. #30
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    1 124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 124
    Par défaut
    bonjour tout le monde

    Apres le reboute j'ai toujour le meme problème.

    En utilisant Ctrl + Alt + Suppr je vois que le programme n'est pas executé.

    Donc, je ne vois pas d'où vient le probleme.

    J'ai mis mon projet en piéce jointe.

    Merci

    Cordialement

    A bientôt
    Fichiers attachés Fichiers attachés

  11. #31
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Voici la modification de ton fichier barreoutil.c :

    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
    #include <gtk/gtk.h>
    #include "structure.h"
     
     
    void barreoutil(composant * e)
    {
       e->toolbar =gtk_toolbar_new();
       gtk_box_pack_start(GTK_BOX(e->vbox),e->toolbar,FALSE,FALSE,0);
     
       e->inconreg = gtk_image_new_from_file("./icon/save_gif.gif");
       e->buttonreg = GTK_WIDGET(gtk_tool_button_new(e->inconreg,"Enregistrer"));
       gtk_toolbar_insert(GTK_TOOLBAR (e->toolbar),GTK_TOOL_ITEM(e->buttonreg),0);
     
       e->icondoss = gtk_image_new_from_file("./icon/open_gif.gif");
       e->buttonrep = GTK_WIDGET(gtk_tool_button_new(e->icondoss,"Dossier"));
       gtk_toolbar_insert(GTK_TOOLBAR (e->toolbar),GTK_TOOL_ITEM(e->buttonrep),0);
     
       e->iconnew= gtk_image_new_from_file("./icon/new_gif.gif");
       e->buttonnew = GTK_WIDGET(gtk_tool_button_new(e->iconnew,"Nouveau"));
       gtk_toolbar_insert(GTK_TOOLBAR (e->toolbar),GTK_TOOL_ITEM(e->buttonnew),0);
    }
    En fait dans la fonction gtk_toolbar_insert, on peut voir le type des arguments qu'il faut passer donc, on connais par avance les macros de transtypage qu'il faut utiliser donc ma foi, rien de bien compliqué.

    Chez moi avec Code::Block (ce que je te recommande à la place de Dev-cpp qui n'est plus maintenu) ca compile sans problème et d'ailleurs, même si le code n'est pas des plus beau, une fois ces quelques warning résolus, j'en ai plus avec les options -W -Wall donc ca reste quand un code relativement correct, même si on peut faire mieux

    Il faudrait surtout que tu soignes un peu plus la présentation de ton code, utiliser à bon escient les tabulations, aérer correctement ton code parce que des fois on se retrouve avec du code tout collé puis s'en suit de 10 lignes vides puis du code qui continu ... ce n'est pas du plus bel effet
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  12. #32
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    1 124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 124
    Par défaut inserer espace
    Bonsoir tout le monde

    Ca fonctionne, je te remercie Franck.H.

    J'ai encore une question, je ne souhaite pas recréer un nouveau post.

    Je souhaite inserer un espace entre certain bouton.

    J'ai fais comme ci-dessous, ca ne fonctionne pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    gtk_toolbar_append_space(GTK_TOOLBAR(e->toolbar));
    Je pensé faire comme ceci, pensez vous que ca fonctionnerai.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    e->space=gtk_toolbar_append_space(GTK_TOOLBAR(e->toolbar));
    gtk_toolbar_insert(GTK_TOOLBAR(e->toolbar),GTK_TOOL_ITEM(e->space),0);
    Cordialement

    A bientôt

  13. #33
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Citation Envoyé par argon
    Je souhaite inserer un espace entre certain bouton.

    J'ai fais comme ci-dessous, ca ne fonctionne pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gtk_toolbar_append_space(GTK_TOOLBAR(e->toolbar));
    En fait d'après ce que je vois dans la ref de l'API, le seul moyen qui permet désormais de séparer des boutons dans une barre d'outils est là fonction: gtk_separator_tool_item_new


    Citation Envoyé par argon
    Je pensé faire comme ceci, pensez vous que ca fonctionnerai.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    e->space=gtk_toolbar_append_space(GTK_TOOLBAR(e->toolbar));
    gtk_toolbar_insert(GTK_TOOLBAR(e->toolbar),GTK_TOOL_ITEM(e->space),0);
    Bin déjà si tu te prenais un peu la pein de consulter la ref de l'API, tu aurais vus que la fonction gtk_toolbar_append_space est d'une, dépréciée et de deux, elle retourne void donc ton affectation ici n'a aucun sens !
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  14. #34
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    1 124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 124
    Par défaut
    Re

    Voici je que j'ai fais.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    gtk_separator_tool_item_new(GTK_TOOL_ITEM(e->toolbar));
    Ca ne fonctionne pas.

    Cordialement

    A bientôt

  15. #35
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Citation Envoyé par argon
    Re

    Voici je que j'ai fais.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    gtk_separator_tool_item_new(GTK_TOOL_ITEM(e->toolbar));
    Ca ne fonctionne pas.

    Cordialement

    A bientôt
    Tu n'arrives pas à voir que la fonction gtk_separator_tool_item_new ne prend pas de paramètres mais retourne un GtkToolItem ? C'est franchement pas compliqué ca, suffit de lire, de regarder les prototypes des fonctions et tu n'aurais même pas à poser la question et ca fonctionnerais tout seul ... A ton avis, comment tu as créé les autres boutons et comment tu les as mis en place (je ne veut pas de réponse mais c'est pour te mettre sur la voie parce que là ....) ?
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  16. #36
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    1 124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 124
    Par défaut
    Bonsoir tout le monde

    Voici ce que j'ai fais, et ca fonctionne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    e->separe= GTK_WIDGET(gtk_separator_tool_item_new()); 
    gtk_toolbar_insert(GTK_TOOLBAR(e->toolbar),GTK_TOOL_ITEM(e->separe),0);
    Maintenant je vais chercher pour mettre un combox sur une barre outil, si c'est possible.

    Merci

    Cordialement

    A bientôt

  17. #37
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Citation Envoyé par argon
    Maintenant je vais chercher pour mettre un combox sur une barre outil, si c'est possible.
    Rien n'est impossible mais ca j'ai jamais fait. N'oublie pas de mettre ce sujet en
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Insertion Icone dans Graphe Excel selon Condition
    Par lindoushka dans le forum Excel
    Réponses: 8
    Dernier message: 18/07/2014, 08h37
  2. Insertion icone dans un JButton
    Par JTABLE dans le forum NetBeans
    Réponses: 2
    Dernier message: 23/12/2013, 16h29
  3. [RCP] Icones dans une toolbar: taille
    Par Ma29200 dans le forum Eclipse Platform
    Réponses: 2
    Dernier message: 19/07/2012, 11h09
  4. icone dans bouton
    Par harald-aldb dans le forum GTK+ avec C & C++
    Réponses: 5
    Dernier message: 13/12/2007, 14h53
  5. creer sa propre icone dans la toolbar
    Par hysah dans le forum wxPython
    Réponses: 1
    Dernier message: 15/01/2006, 21h15

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