В следующем коде я хочу, чтобы цвет фона основного GTK_WINDOW_TOPLEVEL был 0xc0deed. Но когда я работаю, это кажется черным. Я даже попробовал gtk_drawing_area_new и добавление его к главному окну. Но тем не менее это кажется черным, хотя я мог получить другие цвета как красный, синий, белый цвет и т.д.
#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;
}
Компоненты GdkColor являются 16-битными, поэтому они имеют диапазон от 0 до 65535. Умножьте свои значения на 65535/255, и все будет в порядке.
Например, желтым будет:
color.red = 0xffff;
color.green = 0xffff;
color.blue = 0;