【问题标题】:How to use GdkPixBuf?如何使用 GdkPixBuf?
【发布时间】:2009-10-30 13:10:20
【问题描述】:

我想使用来自 C 的 GTK+ 在 VBox 中显示一个简单的 GIF 图像。我知道我需要使用 GdkPixbuf。但像往常一样,没有这样做的例子。谁能提供帮助?

另外:在 GTK+ 中,我们如何将 PNG 图像作为背景添加到小部件?谁能举个例子?

忘记添加这个了:

忘了告诉你我正在使用 Glade 开发 GUI... 我已经在 Glade 中创建了 vBox,并且在我需要显示 Fig Image 的 vBox 块之一中创建了 vBox。 对不起……

【问题讨论】:

  • +1 因为我也想知道如何将小部件的背景设置为图像。顺便说一句:你真的应该接受更多的答案-_-

标签: gtk


【解决方案1】:
  1. gdk_pixbuf_new_from_file() -- 但请参阅 unwind 的答案,了解使用 GtkImage 小部件的更好方法。
  2. 您需要在小部件的样式结构中设置背景像素图字段:

    GtkRcStyle *newstyle = gtk_widget_get_modifier_style(widget);
    newstyle->bg_pixmap_name[GTK_STATE_NORMAL] = g_strdup(pngfilename);
    gtk_widget_modify_style(widget, newstyle);
    

PS。您通常可以通过 Google 搜索您需要示例的函数来找到代码示例。 GTK 文档通常不包含每个函数的示例,因为这会使它们变得混乱,而像 gdk_pixbuf_new_from_file() 这样的函数的文档通常非常简单。我注意到您经常发布此类问题,我想知道您是否在正确的位置寻找文档。例如,您是否在使用优秀的参考工具DevHelp?另一方面,GTK 文档在某些地方确实缺少一些重要信息。如果您有一些改进,为什么不为文档做出贡献?

【讨论】:

    【解决方案2】:

    GTK+ 中的vbox 是一个小部件,它将其他小部件显示为其子级,并将它们垂直堆叠。

    不出所料,有一个专门用于显示图像的 GTK+ 小部件;它被称为 GtkImage。您应该使用@987654322@ 调用来创建一个,将您的GIF 文件名传递给它,然后将其添加到您的vbox。无需自己创建底层 GDK 映像。

    【讨论】:

    • 呃,你当然是对的。我已经编辑了我的答案以参考你的答案。
    猜你喜欢
    • 2023-04-04
    • 2012-05-03
    • 1970-01-01
    • 1970-01-01
    • 2011-02-14
    • 1970-01-01
    • 1970-01-01
    • 2012-05-07
    • 2016-12-27
    相关资源
    最近更新 更多