Цвет фона для Виджета GTK_WINDOW_TOPLEVEL Gtk

В следующем коде я хочу, чтобы цвет фона основного 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;
}
7
задан bluegenetic 8 February 2010 в 17:57
поделиться

1 ответ

Компоненты GdkColor являются 16-битными, поэтому они имеют диапазон от 0 до 65535. Умножьте свои значения на 65535/255, и все будет в порядке.

Например, желтым будет:

color.red = 0xffff;
color.green = 0xffff;
color.blue = 0;
7
ответ дан 7 December 2019 в 03:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: