我的代码怎么了?我想要两行图像,但是不行。 我找不到错误
我认为问题出在resizer函数或Sizers中,但我无法解决它 有没有可能用wxpython创建一个图库,或者我应该为它找到另一个gui?你知道吗
import wx
class MyFrame2 ( wx.Frame ):
def __init__( self, parent ):
wx.Frame.__init__ ( self, parent, id = wx.ID_ANY, title = wx.EmptyString, pos = wx.DefaultPosition, size = wx.Size( 500,300 ), style = wx.DEFAULT_FRAME_STYLE|wx.TAB_TRAVERSAL )
self.SetSizeHintsSz( wx.DefaultSize, wx.DefaultSize )
topSizer = wx.BoxSizer(wx.VERTICAL)
bSizer11 = wx.BoxSizer( wx.HORIZONTAL )
bSizer12 = wx.BoxSizer( wx.HORIZONTAL )
self.img=[]
self.bitmap=[]
self.count_of_img=6
for i in range(self.count_of_img):
self.img.append(wx.Image("D:\\Pictures\\walpaper\\_1120058.jpg", wx.BITMAP_TYPE_ANY))
self.bitmap.append(wx.StaticBitmap( self, wx.ID_ANY, wx.BitmapFromImage(self.img[i])))
bSizer11.Add( self.bitmap[i], 0, wx.ALL | wx.EXPAND, 5 )
for i in range(self.count_of_img):
self.img.append(wx.Image("D:\\Pictures\\walpaper\\_1120058.jpg", wx.BITMAP_TYPE_ANY))
self.bitmap.append(wx.StaticBitmap( self, wx.ID_ANY, wx.BitmapFromImage(self.img[i])))
bSizer12.Add( self.bitmap[i], 0, wx.ALL | wx.EXPAND, 5 )
topSizer.Add(bSizer11, 0, wx.ALL|wx.EXPAND, 5)
topSizer.Add(bSizer12, 0, wx.ALL|wx.EXPAND, 5)
self.Bind(wx.EVT_SIZE, self.onResize)
self.SetSizer( topSizer )
self.Layout()
self.Centre(wx.BOTH)
def __del__( self ):
pass
def onResize(self, event):
# self.Layout()
frame_size = self.GetSize()
frame_h = (frame_size[0]-100) / self.count_of_img
frame_w = (frame_size[1]-100) / self.count_of_img
img=[]
for i in range(len(self.img)):
img.append(self.img[i].Scale(frame_h,frame_w))
self.bitmap[i].SetBitmap(wx.BitmapFromImage(img[i]))
self.Refresh()
self.Layout()
app = wx.App(0)
MyFrame2(None).Show()
app.MainLoop()
很抱歉提供了错误的信息。你知道吗
最好的解决方案是使用
BitmapPanel
类,它将是wxPanel的子类。或者使用wxBitmapButton。你知道吗然后,当您要调整主框架的大小时,面板/按钮也将调整大小。抓住他们的大小事件,并相应地进行。你知道吗
很抱歉再次给你带来困惑。你知道吗
相关问题 更多 >
编程相关推荐