我想有一个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对我的应用程序更好吗?
答案 0 :(得分:1)
如果你有快速改变的大图像,或者你希望将来有一些自定义效果,最好自己编写控件并使用paintDC进行绘画,这并不难。
做你自己的绘图,你可以正确地缩放,避免闪烁,如果你愿意,可以将一个图像混合到另一个图像中。)
答案 1 :(得分:0)
您不必删除StaticBitmap
,只需使用SetBitmap
方法为其设置另一个位图。
如果新图片的尺寸不同,您可能需要对其父级进行明确Layout
调用,以便调整大小。
答案 2 :(得分:0)
我在这里阅读:http://docs.wxwidgets.org/trunk/classwx_static_bitmap.html
“某些平台上的本机实现仅用于显示对话框中的小图标。特别是,在Windows 9x下,位图的大小限制为64 * 64像素。”
这可能是个问题。如果你确实使用DC,那么你可能需要“双重缓冲”它,或者它可能会在重绘,调整大小或更新时闪烁。
否则,在我看来,如果你经常更新它,你应该使用“普通”位图。