在GTK中显示图像 - GTK绘图区域是否需要?
题
我正在尝试显示我从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
会正常工作,比您列出的所有内容更简单;-)
不隶属于 StackOverflow