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++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    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
    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 308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Côte d'Or (Bourgogne)

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

    Informations forums :
    Inscription : Février 2008
    Messages : 2 308
    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 éprouvé
    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
    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.

  4. #4
    Membre confirmé
    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
    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