使用 Cairo 的 GtkDrawingArea 不适用于 Windows 7
GtkDrawingArea using Cairo doesn't apply in Windows 7
我在 Windows 7 64 位和 Fedora 21 64 位中使用 GTK+ 2.24。我使用 Cairo 将绘图区域绘制为白色。它适用于 Fedora,但不适用于 Windows。有谁知道原因吗?
这是我的代码:
static gboolean draw_background_cb(GtkWidget *widget _U_, cairo_t *cr, gpointer data _U_)
{
/* Set background color */
cairo_set_source_rgb(cr, 1, 1, 1);
cairo_rectangle(cr, 0, 0, 300, 300);
cairo_paint(cr);
return FALSE;
}
int main(int argc, char *argv[])
{
GtkWidget *window;
gtk_init(&argc, &argv);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
g_signal_connect(window, "draw", G_CALLBACK (draw_background), NULL);
gtk_widget_show(window);
gtk_main();
return 0;
}
GTK+ 2 使用 expose-event
而不是 draw
进行绘图。我不知道其他区别是什么;对不起。
我在 Windows 7 64 位和 Fedora 21 64 位中使用 GTK+ 2.24。我使用 Cairo 将绘图区域绘制为白色。它适用于 Fedora,但不适用于 Windows。有谁知道原因吗?
这是我的代码:
static gboolean draw_background_cb(GtkWidget *widget _U_, cairo_t *cr, gpointer data _U_)
{
/* Set background color */
cairo_set_source_rgb(cr, 1, 1, 1);
cairo_rectangle(cr, 0, 0, 300, 300);
cairo_paint(cr);
return FALSE;
}
int main(int argc, char *argv[])
{
GtkWidget *window;
gtk_init(&argc, &argv);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
g_signal_connect(window, "draw", G_CALLBACK (draw_background), NULL);
gtk_widget_show(window);
gtk_main();
return 0;
}
GTK+ 2 使用 expose-event
而不是 draw
进行绘图。我不知道其他区别是什么;对不起。