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