1
我得到了一个使用Cairo上下文的paint函数,最终结果应该是一个GtkImage(没有中间图像创建)。我试图用gdk_cairo_create功能,但是这个代码:如何从Cairo上下文创建GtkImage?
...
GdkPixbuf *pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, FALSE, 8, 22, 22);
GtkWidget *image = gtk_image_new_from_pixbuf (pixbuf);
GdkDrawable *drawable = image->window;
cairo_t *ctx = gdk_cairo_create (drawable);
my_cairo_paint_function (ctx);
...
失败:
GDK-CRITICAL **:IA__gdk_cairo_create:断言`GDK_IS_DRAWABLE(绘制)”失败
同用一个简单的:
#include <gtk/gtk.h>
#include <cairo.h>
int
main (int argc, char *argv[])
{
gtk_init(&argc, &argv);
cairo_t *ctx = gdk_cairo_create (gtk_widget_get_window (gtk_image_new_from_file ("foobar.png")));
gtk_main();
return 0;
}
我不明白为什么这个失败。任何帮助表示赞赏!
谢谢!我刚刚发现,仅仅为了使Gtk应用程序正常工作而使用现有代码进行搜索是不够的。首先尝试使用官方的[编程手册](http://developer.gnome.org/doc/GGAD/ggad.html)获取一些基本知识。 – Zurbo82 2010-12-23 22:27:45