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 :

Créer des GtkMenuItem personalisés.


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 Créer des GtkMenuItem personalisés.
    Bonjour,

    J'ai vu un tutorial pour créer des widgets personnalisés: http://franckh.developpez.com/tutori...eation-widget/

    Est'il possible de créer des éléments de menu d'une façon similaire afin de mettre une image à coté d'un label, car depuis gtk 3.10, il n'y a plus de GtkImageMenuItem ?

  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
    J'ai apporté une possibilité de réponse à ce problème sans être obligé de créer un nouveau widget ici : http://www.developpez.net/forums/d14.../images-menus/

  3. #3
    Membre expérimenté
    Avatar de Luke spywoker
    Homme Profil pro
    Etudiant informatique autodidacte
    Inscrit en
    Juin 2010
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant informatique autodidacte

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 077
    Points : 1 742
    Points
    1 742
    Par défaut
    En faite, j'ai poser la même question il y a peu de temps, une solution est de mettre le contenus de ton MenuItem dans une HBox ou tu peut placer ce que tu désire: image, texte, raccourci clavier.

    Voici la fonction de mon dernier programme qui permet de générer un MenuItem avec image, texte et raccourci clavier dont tu peut t'inspiré:

    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
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
     
    void setup_menu_item(MenuItem *menuitem, const char *label, const char *accel_label, const char *image, GtkAccelGroup *menu_files_accel_group,  GdkModifierType accel_modifier,  guint accel_key, bool is_menu_button) {
      /** Generate one menu item according to the given settings **/
     
      menuitem->menuitem  = gtk_menu_item_new() ;
     
      menuitem->label = gtk_label_new(label) ;
     
      gtk_label_set_justify(GTK_LABEL(menuitem->label), GTK_JUSTIFY_LEFT);
     
      if (accel_label) {
        /** Menu item has an shortcut **/
     
        menuitem->accel_label = gtk_label_new(accel_label) ;
     
        gtk_label_set_justify(GTK_LABEL(menuitem->accel_label), GTK_JUSTIFY_RIGHT) ;
     
     
        if (accel_key != 0) {
     
          gtk_widget_add_accelerator(menuitem->menuitem,
                                     "activate",
                                     menu_files_accel_group,
                                     accel_key,
                                     accel_modifier,
                                     GTK_ACCEL_VISIBLE);
        }
      }
     
      if (image) {
        /** Menu item has an associate image **/
     
        char *filepath  = malloc(PATH_MAX) ;
        strcpy(filepath,  PATH_TO_MENU_ICON) ;
        strcat(filepath,  image) ;
     
        menuitem->image = gtk_image_new_from_file(filepath) ;
     
        free(filepath) ;
      }
     
      /** Menu item container **/
      menuitem->hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL,0) ;
     
      if (image) {
        gtk_box_pack_start(GTK_BOX(menuitem->hbox), menuitem->image, FALSE, FALSE, 0) ;
      }
     
      gtk_box_pack_start(GTK_BOX(menuitem->hbox),   menuitem->label, FALSE, FALSE, 0) ;
     
      GtkWidget *dummy_label=gtk_label_new("") ; /** For expand between Text and shortcut text **/
     
      gtk_box_pack_start(GTK_BOX(menuitem->hbox),  dummy_label,      TRUE,  TRUE,  0) ;
     
     
      if (accel_label) {
        gtk_box_pack_start(GTK_BOX(menuitem->hbox), menuitem->accel_label, FALSE, FALSE, 0) ;
      }
     
      gtk_container_add(GTK_CONTAINER(menuitem->menuitem),menuitem->hbox) ;
     
     
     
      return ;
    }
    Voilou, bon code C a toi.
    Pour faire tes armes:
    Use du présent pour construire ton futur sinon use de ce que tu as appris auparavant.
    Et sois toujours bien armé avant de te lancer.
    Le hasard ne sourit qu'aux gens préparés...
    Site: Website programmation international (www.open-source-projects.net)
    Site: Website imagerie 3D (www.3dreaming-imaging.net)
    Testez aux moins pendant une semaine l'éditeur avec terminaux intégrées it-edit Vous l'adopterai sûrement !
    FUN is HARD WORK !!!

  4. #4
    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 à tous les deux, je vais essayer.

Discussions similaires

  1. Merci de nous aider à créer des ressources (FAQ et sources)
    Par Community Management dans le forum Evolutions du club
    Réponses: 29
    Dernier message: 19/10/2015, 00h35
  2. créer des objets "User" personalisés
    Par watcha2020 dans le forum Windows Serveur
    Réponses: 2
    Dernier message: 29/04/2007, 01h48
  3. Créer des objets sur la pile ?
    Par Cornell dans le forum Langage
    Réponses: 8
    Dernier message: 03/03/2003, 11h47
  4. DirectDraw: Créer des surfaces 256 couleurs
    Par Magus (Dave) dans le forum DirectX
    Réponses: 5
    Dernier message: 14/10/2002, 22h28
  5. [CR] Est il possible de créer des univers avec Seagate Info?
    Par Frank dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 27/06/2002, 15h22

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