我正在尝试显示我从pixbuf加载的图像(来自内存中的数据),并且每次都会更新图像(因为Pixbuf也随时间变化)。我的问题是,由于窗口仅包含图像(定期进行更新),我是否需要GTK可绘制的图像或图像?还是可以简单地在窗口中显示图像?另一个选择是使用开罗。任何人都可以建议做一个好方法吗?

有帮助吗?

解决方案

将文件加载到pixbuf中,有一个new_from_file构造函数或其他内容。

是的,创建一个绘图架并将其粘在盒子或某个地方的东西中。

接下来,获取drawingarea父窗口(将有一种诸如get_window之类的方法或其他方法)。这将是您的吸引力。

创建GC(图形上下文) - 您无需在其中设置任何特殊值。

将DrawingArea连接到暴露事件。在暴露事件中,请使用您创建的GC在PixBuf上调用Draw_pixbuf方法。

每当您以某种方式更新PixBuf时,请调用此相同的draw_pixbuf方法。

您可能还需要考虑使用PixMap,如果您不从文件中加载它并打算在其上绘制它。 PixMap本身是可绘制的,因此您可以直接绘制矩形和上面的东西。在图纸上显示它的唯一真正区别是,您需要调用draw_drawable方法,而不是在可绘制的绘制中调用draw_pixbuf。

请注意,我是从使用PERL/GTK2的内存中写下的,并且可能不会清洁地映射到您使用的任何语言。

其他提示

一种 GtkImage 会正常工作,比您列出的所有内容更简单;-)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top