两行wxpython图像

2024-04-26 03:43:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我的代码怎么了?我想要两行图像,但是不行。 我找不到错误

我认为问题出在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()

Tags: ofselfaddimgsizedefcountany
1条回答
网友
1楼 · 发布于 2024-04-26 03:43:06

很抱歉提供了错误的信息。你知道吗

最好的解决方案是使用BitmapPanel类,它将是wxPanel的子类。或者使用wxBitmapButton。你知道吗

然后,当您要调整主框架的大小时,面板/按钮也将调整大小。抓住他们的大小事件,并相应地进行。你知道吗

很抱歉再次给你带来困惑。你知道吗

相关问题 更多 >