wx.StaticBitmap或wx.DC:哪个更适合用于不断变化的图像?

时间:2009-09-20 09:09:31

标签: python user-interface image wxpython

我想有一个python gui从文件中加载不同的图像。我已经看到很多例子加载图像,例如:

img = wx.Image("1.jpg", wx.BITMAP_TYPE_ANY, -1)
sb = wx.StaticBitmap(rightPanel, -1, wx.BitmapFromImage(img))
sizer.Add(sb)

它似乎适合于程序整个生命周期中的图像。我找不到一种优雅的方法来删除/重新加载图像。使用wx.DC对我的应用程序更好吗?

3 个答案:

答案 0 :(得分:1)

如果你有快速改变的大图像,或者你希望将来有一些自定义效果,最好自己编写控件并使用paintDC进行绘画,这并不难。

做你自己的绘图,你可以正确地缩放,避免闪烁,如果你愿意,可以将一个图像混合到另一个图像中。)

答案 1 :(得分:0)

您不必删除StaticBitmap,只需使用SetBitmap方法为其设置另一个位图。

如果新图片的尺寸不同,您可能需要对其父级进行明确Layout调用,以便调整大小。

答案 2 :(得分:0)

我在这里阅读:http://docs.wxwidgets.org/trunk/classwx_static_bitmap.html

“某些平台上的本机实现仅用于显示对话框中的小图标。特别是,在Windows 9x下,位图的大小限制为64 * 64像素。”

这可能是个问题。如果你确实使用DC,那么你可能需要“双重缓冲”它,或者它可能会在重绘,调整大小或更新时闪烁。

否则,在我看来,如果你经常更新它,你应该使用“普通”位图。

相关问题