【发布时间】:2011-02-14 13:38:59
【问题描述】:
我想我对 GTK 有一个理解问题。我的简单应用程序有一个图像流,我想在我的 GTK 窗口中显示它们。到目前为止,它看起来像这样:
GdkPixbuf *pb = gdk_pixbuf_new_from_data(img2, GDK_COLORSPACE_RGB,
FALSE, 24/3, 320, 240, 320*3,
NULL, NULL);
if(pb == NULL)
fprintf(stderr, "Pixbuf is null!\n");
if(image != NULL)
gtk_container_remove(GTK_CONTAINER(window), image);
image = gtk_image_new_from_pixbuf(pb);
gtk_container_add(GTK_CONTAINER(window), image);
printf("Updated!\n");
img2 是我的 (rgb) 缓冲区,每次都从流中更新。我猜 gtk_container_remove 和 gtk_container_add 可能会愚蠢地用于此目的?
以下是我的补充:
GtkWidget *window;
GtkWidget *image;
gtk_init(&argc, &argv);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_signal_connect(GTK_OBJECT(window), "destroy",
GTK_SIGNAL_FUNC(destroy), NULL);
/* ... */
start_routine_for_stream_that_calls_the_above(...)
/* ... */
gtk_widget_show_all(window);
gtk_main();
我的问题是它不能以这种方式工作......要么我只看到最后一张 GdkPixbuf 图像,要么我什么也没看到,这是正确的行为......
但是我如何管理它以显示更新的 GdkPixbuf(流)?
感谢您的帮助
【问题讨论】:
标签: gtk