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 :

Bouton + couleur + mouseover


Sujet :

GTK+ avec C & C++

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 111
    Par défaut Bouton + couleur + mouseover
    Bonjour à tous

    J'aimerais pouvoir configurer la couleur qui s'affiche lorsque le curseur de la souris (pointeur) est sur un bouton.

    J'ai essayé avec les fichiers gtkrc mais cela ne semble pas fonctionner.

    Par avance Merci

  2. #2
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 506
    Par défaut
    Qu'as-tu mis dans ton gtkrc ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 111
    Par défaut
    Voici le code de mon gtkrc :

    Code C : 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
     
    gtk-icon-sizes = "gtk-menu=13,13:gtk-small-toolbar=16,16:gtk-large-toolbar=24,24:gtk-dnd=32,32"
    gtk-toolbar-icon-size = small-toolbar
     
    # disable images in buttons. i've only seen ugly delphi apps use this feature.
    gtk-button-images = 0
     
    # enable/disable images in menus. most "stock" microsoft apps don't use these, except sparingly.
    # the office apps use them heavily, though.
    gtk-menu-images = 1
     
    # use the win32 button ordering instead of the GNOME HIG one, where applicable
    gtk-alternative-button-order = 1
     
    style "msw-test"="msw"
    {
      GtkRange::slider_width = 30
    }
    class "GtkScrollbar" style "msw-test"
     
    style "msw"
    {
    	fg[PRELIGHT]      = "#999999"
        bg[PRELIGHT]      = "#999999" 
    }
    class "GtkWidget" style "msw"
     
    style "msw-button"="msw"
    {
      fg[PRELIGHT] = "#999999" 
      bg[PRELIGHT] = "#999999" 
    }
    class "GtkButton" style "msw-button"
     
    style "msw-label"="msw"
    {
     
    }
    class "GtkLabel" style "msw-label"
     
    style "msw-container"="msw"
    {
       fg[PRELIGHT]    = "#999999"
       bg[PRELIGHT] = "#999999"
    }
    class "GtkContainer" style "msw-container"

    Même si je modifie les valeurs, le "petit liseré", qui apparait/disparait en fonction si le curseur de la souris est sur mon bouton ou pas, ne change pas de couleur.

    J'aimerais si possible par la meme occassion en modifier la taille (epaisseur) mais bon cela est un autre problème

  4. #4
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 506
    Par défaut
    pour la taille, tu peux la modifier en utilisant la méthode set_size_request, mais si tu as mis une image personalisée sur ton bouton, il y a des risques que l'image soit mal positionnée par rapport au bouton...

    Pour la couleur, tu peux rajouter , certains widget ont besoin de ça pour modifier leur couleur.
    Autre tentative, tu mets ton bouton dans une EventBox, et tu essayes de changer la couleur de l'event box... ça marche sur des widgets comme les labels, ou les hbox, mais je sais pas pour les boutons

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 111
    Par défaut
    Citation Envoyé par drKzs Voir le message
    pour la taille, tu peux la modifier en utilisant la méthode set_size_request, mais si tu as mis une image personalisée sur ton bouton, il y a des risques que l'image soit mal positionnée par rapport au bouton...

    Pour la couleur, tu peux rajouter , certains widget ont besoin de ça pour modifier leur couleur.
    Autre tentative, tu mets ton bouton dans une EventBox, et tu essayes de changer la couleur de l'event box... ça marche sur des widgets comme les labels, ou les hbox, mais je sais pas pour les boutons
    Soit je comprends pas ou sois j'ai pas été assez clair en ce qui concerne la modification de la taille du liseré de couleur. Je ne cherche pas à modifier la taille de mon bouton ni du label à l'intérieur mais juste du "liseré" qui apparait lorsque le pointeur de la souris se trouve dessus.

    En ce qui concerne la couleur je vais essayer l'eventbox car ne modifie rien.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 111
    Par défaut
    Alors j'ai essayé avec une GtkEventBox mais cela ne change rien:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    style "msw-event"="msw"
    {
      fg[PRELIGHT] = "#999999"
      bg[PRELIGHT] = "#999999" 
      base[PRELIGHT] = "#999999"
    }
    class "GtkEventBox" style "msw-event"
    Pour info je mets une image pour indiquer exactement le partie que je veux paramétrée. (c'est le liseré orange autour des boutons à gauche sur l'image)
    Images attachées Images attachées  

  7. #7
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 506
    Par défaut
    hm au temps pour moi en ce qui concerne la taille
    et bien désolé, pas d'autres idée :'( au suivant

  8. #8
    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
    Bonjour,

    Il n'y a rien dans le fichier ressource pour gérer les bordures. Je viens de regarder un thème qui affiche des bordures lorsque tu survole le bouton, il utilise un moteur (engine) supplémentaire.

    Il s'agit du thème gflat quicksilver.

    Il utilise la couleur bg[SELECTED] pour les bordures mais je ne sais pas si c'est standard !

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 111
    Par défaut
    Citation Envoyé par gege2061 Voir le message
    Bonjour,

    Il n'y a rien dans le fichier ressource pour gérer les bordures. Je viens de regarder un thème qui affiche des bordures lorsque tu survole le bouton, il utilise un moteur (engine) supplémentaire.

    Il s'agit du thème gflat quicksilver.

    Il utilise la couleur bg[SELECTED] pour les bordures mais je ne sais pas si c'est standard !
    Merci pour la réponse mais apparamment cela ne fonctionne pas en standard.
    J'ai rajouté bg[SELECTED] dans mon fichier gtkrc mais la bordure reste orange comme sur l'image en pièce jointe.

    Pour info :

    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
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
     
    gtk-icon-sizes = "gtk-menu=13,13:gtk-small-toolbar=16,16:gtk-large-toolbar=24,24:gtk-dnd=32,32"
    gtk-toolbar-icon-size = small-toolbar
     
    # disable images in buttons. i've only seen ugly delphi apps use this feature.
    gtk-button-images = 0
     
    # enable/disable images in menus. most "stock" microsoft apps don't use these, except sparingly.
    # the office apps use them heavily, though.
    gtk-menu-images = 1
     
    # use the win32 button ordering instead of the GNOME HIG one, where applicable
    gtk-alternative-button-order = 1
     
    style "msw-test"="msw"
    {
      GtkRange::slider_width = 30
    }
    class "GtkScrollbar" style "msw-test"
     
    style "msw"
    {
    	fg[PRELIGHT]      = "#999999"
    	fg[SELECTED]      = "#999999" 
        bg[PRELIGHT]      = "#999999" 
    	bg[SELECTED]      = "#999999" 
    	base[PRELIGHT]    = "#999999"
    	base[SELECTED]    = "#999999"
    	GtkButton      ::default_border    = { 0, 0, 0, 0 }
    	GtkButton      ::inner_border    = { 0, 0.7, 0.4, 1.0 }
    }
    class "GtkWidget" style "msw"
     
    style "msw-button"="msw"
    {
      fg[PRELIGHT] = "#999999"
      bg[PRELIGHT] = "#999999" 
      base[PRELIGHT] = "#999999"
    }
    class "GtkButton" style "msw-button"
     
    style "msw-label"="msw"
    {
     
    }
    class "GtkLabel" style "msw-label"
     
    style "msw-container"="msw"
    {
       fg[PRELIGHT]    = "#999999"
       bg[PRELIGHT] = "#999999"
    }
    class "GtkContainer" style "msw-container"
     
    style "msw-vbbox"="msw"
    {
      fg[PRELIGHT] = "#999999"
      bg[PRELIGHT] = "#999999" 
      base[PRELIGHT] = "#999999"
    }
    class "GtkVButtonBox" style "msw-vbbox"
     
    style "msw-hbox"="msw"
    {
      fg[PRELIGHT] = "#999999"
      bg[PRELIGHT] = "#999999" 
      base[PRELIGHT] = "#999999"
    }
    class "GtkHBox" style "msw-hbox"
     
    style "msw-vbox"="msw"
    {
      fg[PRELIGHT] = "#999999"
      bg[PRELIGHT] = "#999999" 
      base[PRELIGHT] = "#999999"
    }
    class "GtkVBox" style "msw-vbox"
     
    style "msw-table"="msw"
    {
      fg[PRELIGHT] = "#999999"
      bg[PRELIGHT] = "#999999" 
      base[PRELIGHT] = "#999999"
    }
    class "Gtktable" style "msw-table"
     
    style "panelbuttons"
    {
    	xthickness = 1
    	ythickness = 1
    	fg[PRELIGHT] = "#2e3436"
    	bg[ACTIVE] = "#afbc84"
    	fg[ACTIVE] = "#ffffff"
    }
    widget_class "*Panel*Button" style "panelbuttons"

  10. #10
    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
    Tu utilise le thème Windows ! J'ai pas regardé le moteur mais il doit utiliser les fonctions natives de Windows pour dessiner les contrôles donc ça me paraît difficile de faire ce que tu veux

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 111
    Par défaut
    Citation Envoyé par gege2061 Voir le message
    Tu utilise le thème Windows ! J'ai pas regardé le moteur mais il doit utiliser les fonctions natives de Windows pour dessiner les contrôles donc ça me paraît difficile de faire ce que tu veux
    Oui je sais que j'utilise le theme windows mais bon vu que je n'avais pas de grosses modifications graphiques à apporter et que c'était un souhait de mon "client" d'avoir le look windows.
    J'ai bien réussi à changer l'epaisseur des scrollbar alors je m'étais dit que pour changer la couleur ça devait etre dans le meme style.

    Je vais encore continuer à fouiller un peu. Si on peut le faire sur d'autres themes, on doit pouvoir le faire avec le theme windows (la couleur "orange" doit bien etre noté quelque part)

  12. #12
    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 kenshi240683 Voir le message
    Oui je sais que j'utilise le theme windows mais bon vu que je n'avais pas de grosses modifications graphiques à apporter et que c'était un souhait de mon "client" d'avoir le look windows.
    Je comprends, mais c'est difficile d'avoir une application au look intégré et vouloir le modifier

    Citation Envoyé par kenshi240683 Voir le message
    J'ai bien réussi à changer l'epaisseur des scrollbar alors je m'étais dit que pour changer la couleur ça devait etre dans le meme style.

    Je vais encore continuer à fouiller un peu. Si on peut le faire sur d'autres themes, on doit pouvoir le faire avec le theme windows (la couleur "orange" doit bien etre noté quelque part)
    Le problème c'est que tu peux modifier facilement les éléments gérés par le fichier ressources, mais là c'est le moteur de thème qui s'occupe de ça. Et si le moteur utilise des fonctions auxquelles tu n'as pas accès (fonctions de windows), ça risque d'être difficile.

    Si tu veux les sources du moteur : http://gtk-wimp.sourceforge.net/

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 111
    Par défaut
    Bon j'ai abandonné l'idée de changer le liseré "orange", il semble qu'il n'y ai pas de solution à part en changeant l'engine.

    Par contre je continue dans la même catégorie. je n'arrive pas à mettre mes boutons avec un fond noir . Est-ce encore du à l'engine par défaut ou ai-je fait une erreur quelque part.

    Je mets en pièce jointe mon projet (fichier zip). Je développe avec Visual C++ 6.0 et glade.
    Si quelqu'un peut regarder.
    Fichiers attachés Fichiers attachés

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 111
    Par défaut
    Citation Envoyé par kenshi240683 Voir le message
    Bon j'ai abandonné l'idée de changer le liseré "orange", il semble qu'il n'y ai pas de solution à part en changeant l'engine.

    Par contre je continue dans la même catégorie. je n'arrive pas à mettre mes boutons avec un fond noir . Est-ce encore du à l'engine par défaut ou ai-je fait une erreur quelque part.

    Je mets en pièce jointe mon projet (fichier zip). Je développe avec Visual C++ 6.0 et glade.
    Si quelqu'un peut regarder.
    C'est bien le theme MS-Windows qui empeche de changer le fond des boutons. En changeant le theme par Raleigh cela fonctionne même si l'on perd l'aspect 3d des boutons.

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

Discussions similaires

  1. [XL-2007] Plusieurs boutons "Couleur de remplissage"
    Par totojordi dans le forum Excel
    Réponses: 1
    Dernier message: 26/03/2012, 15h04
  2. [Cocoa] Un bouton couleur sans utiliser le ColorWell
    Par HNoury dans le forum Apple
    Réponses: 4
    Dernier message: 19/01/2011, 11h32
  3. Bouton couleur à bout rond
    Par Coussati dans le forum Composants VCL
    Réponses: 4
    Dernier message: 22/02/2009, 22h03
  4. Réponses: 6
    Dernier message: 13/08/2008, 16h54
  5. bouton couleur diiférente après clik
    Par diesel774 dans le forum IHM
    Réponses: 2
    Dernier message: 24/06/2008, 10h18

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