首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GTK+和GdkPixbuf

GTK+和GdkPixbuf
EN

Stack Overflow用户
提问于 2010-05-01 14:16:24
回答 1查看 855关注 0票数 1

我想我对GTK有一个理解的问题。我的简单应用程序有一个映像流,我想在我的GTK窗口中显示它们。到目前为止,它看起来是这样的:

代码语言:javascript
复制
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_removegtk_container_add在这方面可能是愚蠢的吗?

此外,我还有以下几点:

代码语言:javascript
复制
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流

谢谢你的帮助

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-05-01 14:35:14

您需要在更改图像时运行主循环。例如,您可以执行gtk_main()并使用g_timeout_add()来调度回调,以便每秒钟运行一次,并替换该回调中的图像。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2750261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档