Couleur d'arrière-plan pour GTK_WINDOW_TOPLEVEL Gtk Widget
Dans le code suivant, je veux de la couleur du fond de la principale GTK_WINDOW_TOPLEVEL être 0xc0deed. Mais quand je le lance il apparaît noir. J'ai même essayé de gtk_drawing_area_new et de l'ajouter à la fenêtre principale. Mais encore, il apparaît noir bien que je pourrais obtenir d'autres couleurs comme le rouge, bleu, blanc, etc
#include <gtk/gtk.h>
int main( int argc, char *argv[])
{
GtkWidget *p_s_window = NULL;
GdkColor color;
color.red = 0x00C0;
color.green = 0x00DE;
color.blue = 0x00ED;
gtk_init(&argc, &argv);
p_s_window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_position(GTK_WINDOW(p_s_window), GTK_WIN_POS_CENTER);
gtk_window_set_title(GTK_WINDOW(p_s_window), "hello");
gtk_widget_modify_bg(p_s_window, GTK_STATE_NORMAL, &color);
g_signal_connect_swapped(G_OBJECT(p_s_window), "destroy",
G_CALLBACK(gtk_main_quit), NULL);
gtk_widget_show_all(p_s_window);
gtk_main();
return 0;
}
OriginalL'auteur bluegenetic | 2010-02-08
Vous devez vous connecter pour publier un commentaire.
La GdkColor composants sont de 16 bits, donc ayant une plage de 0 à 65535. Multipliez vos valeurs avec 65535/255 et vous serez bien.
Par exemple le jaune serait:
OriginalL'auteur AndiDog
Bien que la question est assez ancien, je souhaite apporter une autre réponse qui ne nécessite pas de calcul.
Vous pouvez utiliser
gdk_color_parse()
pour analyser la chaîne de la représentation de votre couleur. Comme mentionné dans le la documentation, cela fonctionne sur différents formats:Si dans votre cas, ce serait tout simplement:
Veuillez également noter que Gtk 3.0,
gtk_widget_modify_bg()
est obsolète. Utilisationgtk_widget_override_background_color()
à la place.OriginalL'auteur M.Geiger