在下面的代码中,我希望主 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;
关于c - GTK_WINDOW_TOPLEVEL Gtk Widget 的背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2223649/