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 :

GtkTreeView et couleur de la ligne selectionnée


Sujet :

GTK+ avec C & C++

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 9
    Par défaut GtkTreeView et couleur de la ligne selectionnée
    Bonjour,
    Je travail en ce moment sur un GtkTreeView.
    J'ai créée des colonnes dans mon modèles (type GDK_TYPE_COLOR ) servant à représenter la couleur de la ligne et de certaines cellules. J'ai réussi à le résultat voulu, mais j'ai un problème lorsqu'une ligne est sélectionnée.
    Quand je sélectionne une ligne, toute la ligne devient bleu. Hors je voudrais que les cellules où j'ai spécifié une couleur garde cette couleur.
    Par exemple j'ai une ligne avec le fond qui garde la couleur du thème, sauf une cellule où la couleur serait rouge ou verte.

    J'ai essayé d'agir au niveau du thème pour que la ligne sélectionnée n'est pas de couleur spécifique mais je n'ai pas trouvé d'option pour ça.

    J'ai fait le tour de google aussi mais ne trouve pas de réponse à ma question, pourtant je pense pas être le premier à avoir ce problème. Est ce quelque chose d'évident et je suis passé à coté ?

    Merci d'avance

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 9
    Par défaut
    Un petit up si quelqu'un a une idée, je seche vraiment la :/

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 9
    Par défaut
    Un autre petit up
    J'avais pensé à changer la couleur de la ligne de selection (le style base[GTK_STATE_SELECTED]) le cas écheant, en fonction de la couleur de certaines cases de la ligne.

  4. #4
    Invité de passage
    Inscrit en
    Septembre 2010
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 1
    Par défaut
    Bonjour,

    C'est peut-être un peu tard, mais voici quelques idées :

    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
     
    //==========================================================================================
    //	Fonction callback permettant de redessiner les couleurs des cellules
    //	suivant divers critères
    //  Cette fonction est exécuter à chaque fois que les cellules doivent être redessinées.
    //  (dessin initial, survole, utilisation de l'ascenseur, etc ...)
    //==========================================================================================
    void paint_cell_func(GtkTreeViewColumn *column,
                         GtkCellRenderer   *renderer,
                         GtkTreeModel      *model,			// p_liststore1
                         GtkTreeIter       *iter,
                         gpointer           user_data)
    {
    	gint	ident;
    	gint	no_token;
    	gchar	*lib;
    	gint	nb_good;
    	gint	nb_bad;
    	gint	row; 
     
    	gtk_tree_model_get(model, iter, 0, &ident, 1, &no_token, 2, &lib, 3, &nb_good, 4, &nb_bad, -1);
     
    	if (ident%2 == 1) {
    		g_object_set(renderer, "background", "cyan", "background-set", TRUE, NULL);
    	} else {
    		g_object_set(renderer, "background", "lightcyan", "background-set", TRUE, NULL);
    	}
    }
    à utiliser avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    	// Définition de la fonction de redessin d'une cellule de la colonne 1
    	gtk_tree_view_column_set_cell_data_func(pColumn, pCellRenderer, paint_cell_func, GINT_TO_POINTER(1), NULL);
    Tu peux ainsi affecter une fonction de traitement des cellules pour chaque colonne ou la même fonction pour plusieurs colonnes.

    Je débute aussi.
    Guillaume

Discussions similaires

  1. Datagrid:Changer la couleur d'une ligne selectionnée
    Par Am34000 dans le forum Windows Presentation Foundation
    Réponses: 5
    Dernier message: 24/08/2010, 10h04
  2. Réponses: 1
    Dernier message: 07/10/2009, 11h16
  3. trier couleur par rapport à une ligne selectionnée
    Par calvi2002 dans le forum Excel
    Réponses: 2
    Dernier message: 16/07/2009, 10h53
  4. Réponses: 5
    Dernier message: 06/06/2006, 10h27
  5. String Grid et choix d'une couleur pour une ligne
    Par Gigottine dans le forum C++Builder
    Réponses: 12
    Dernier message: 17/05/2002, 15h23

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