Bonjour,

pour une petit projet personnel, je cherche depuis pas mal de temps de pouvoir changer le nombre de décimal affichée dans une GtkTreeVeiwColumn. J'utilise GtkCellRendererSpin et essaye de changer la propriété "digits" avec g_object_set. Le résultat n'est pas au rendez-vous. J'ai fais un petit exemple pour expliquer mon problème.

voici le code

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
 
#include <stdio.h>
#include <stdlib.h>
#include <gtk/gtk.h>
 
#include "constantes.h"
 
int main (int argc, char *argv[])
{
	/* Déclaration des variables */
	GtkWidget *fenetre = NULL;
	GtkWidget *container_principal = NULL;
 
	/* Initialisation de GTK+ */
	gtk_init (&argc, &argv);
 
	/* Création de la fenêtre principale */
	fenetre = gtk_window_new (GTK_WINDOW_TOPLEVEL);
	gtk_window_set_title (GTK_WINDOW (fenetre), "Essai");
	gtk_window_maximize (GTK_WINDOW (fenetre));
	gtk_container_set_border_width (GTK_CONTAINER (fenetre), 0);
 
	/* Création du container principal */
	container_principal = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
	gtk_container_add (GTK_CONTAINER (fenetre), container_principal);
 
	/* Liste */
		/* Déclaration des variables */
		GtkListStore *liste = NULL;
		GtkTreeIter element;
		GtkWidget *liste_affichable = NULL;
		GtkCellRenderer *rendu = NULL;
		GtkCellRenderer *rendu_1 = NULL;
		GtkCellRenderer *rendu_2 = NULL;
		GtkTreeViewColumn *colonne = NULL;
 
		liste = gtk_list_store_new(NB_COLONNE, G_TYPE_STRING, G_TYPE_UINT, G_TYPE_DOUBLE, G_TYPE_BOOLEAN);
 
		/* premier élémnet */
		gtk_list_store_append (liste, &element);		
		gtk_list_store_set (liste, &element, TEXTE, "essai 1", ENTIER, 0, FLOTTANT, 1.0525, BINAIRE, TRUE, -1);
 
		/* deuxième élément */
		gtk_list_store_append (liste, &element);
		gtk_list_store_set (liste, &element, TEXTE, "essai 2", ENTIER, 1, FLOTTANT, 2.98765, BINAIRE, FALSE, -1);
 
		/* liste affichable */
		liste_affichable = gtk_tree_view_new_with_model (GTK_TREE_MODEL (liste));
 
		/* première colonne */
		rendu = gtk_cell_renderer_text_new ();
		colonne = gtk_tree_view_column_new_with_attributes ("Texte", rendu, "text", TEXTE, NULL);
		gtk_tree_view_append_column (GTK_TREE_VIEW (liste_affichable), colonne);
 
		/* deuxième colonne */
		rendu = gtk_cell_renderer_text_new ();
		colonne = gtk_tree_view_column_new_with_attributes ("Entier", rendu, "text", ENTIER, NULL);
		gtk_tree_view_append_column (GTK_TREE_VIEW (liste_affichable), colonne);
 
		/* troisième élément */
		rendu_1 = gtk_cell_renderer_spin_new ();
		g_object_set (rendu_1, "digits", 2, NULL);
		colonne = gtk_tree_view_column_new_with_attributes ("Flottant", rendu_1, "text", FLOTTANT, NULL);
		gtk_tree_view_append_column (GTK_TREE_VIEW (liste_affichable), colonne);
 
		/* quatrième élément */
		rendu_2 = gtk_cell_renderer_toggle_new ();
		colonne = gtk_tree_view_column_new_with_attributes ("Binaire", rendu_2, "active", BINAIRE, NULL);
		gtk_tree_view_append_column (GTK_TREE_VIEW (liste_affichable), colonne);
 
		gtk_box_pack_start (GTK_BOX (container_principal), liste_affichable, FALSE, FALSE, 20);
 
	/* Boucle principale */
	gtk_widget_show_all (fenetre);
	gtk_main ();
 
	return (EXIT_SUCCESS);
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
#ifndef CONSTANTES
	#define CONSTANTES
 
	enum nom_colonne
	{
		TEXTE,
		ENTIER,
		FLOTTANT,
		BINAIRE,
		NB_COLONNE
	};
 
#endif
Résultat affiché :

Nom : Capture d’écran de 2020-03-29 11-00-35.png
Affichages : 248
Taille : 14,6 Ko

Merci pour vos réponses