【问题标题】:wxpython scroll panel won't resizewxpython滚动面板不会调整大小
【发布时间】:2017-11-13 07:25:02
【问题描述】:

我正在使用 wxpython 并尝试制作一个带有可调整大小的滚动条的框架面板,但是当我调整框架的大小时,滚动条面板不会调整大小,我需要更改什么? AdressGUI 是一个制作 wxpython 框架的类。 python 版本 2.7 python 版本 2.7

def OpenShowAddressList(self,e):
self.ShowAdressFrame=AdressGUI(self,"Frame")
panel=self.ShowAdressFrame.panel

panel2 = wx.lib.scrolledpanel.ScrolledPanel(panel,-1, size=(AdressWidthSize-15,AdressHeightSize-10),pos=(0,0), style=wx.SIMPLE_BORDER)
panel2.SetupScrolling()

font = wx.Font(18, wx.DEFAULT, wx.ITALIC, wx.NORMAL)
font.SetPointSize(9)
vbox = wx.BoxSizer(wx.VERTICAL)
bmp = wx.Bitmap(PATHIMAGES+"xbutton.jpg", wx.BITMAP_TYPE_ANY)
hboxlis=[]

hbox1 = wx.BoxSizer(wx.HORIZONTAL)
iptext = wx.StaticText(panel2, label="כתובת")
usernametext = wx.StaticText(panel2, label="משתמש")
passwordtext=wx.StaticText(panel2, label="סיסמא")
bmaptxt=wx.StaticText(panel2,label="מחק")
iptext.SetFont(font)
usernametext.SetFont(font)
passwordtext.SetFont(font)
bmaptxt.SetFont(font)
hbox1.Add(iptext,proportion=3 ,flag=wx.RIGHT, border=0)
hbox1.Add(usernametext,proportion=2, flag=wx.RIGHT, border=0)
hbox1.Add(passwordtext, proportion=2,flag=wx.RIGHT, border=8)
hbox1.Add(bmaptxt, proportion=0)
hbox1.Add(wx.StaticText(panel2), proportion=4,flag=wx.RIGHT, border=8) # add just for empty space to fit the sizer
hboxlis.append(hbox1)
vbox.Add(hbox1, flag=wx.EXPAND|wx.LEFT|wx.RIGHT|wx.TOP, border=10)    
for add in self.DevicesList:
    bmapBtn = wx.BitmapButton(panel2, id=wx.ID_ANY, bitmap=bmp,size=(bmp.GetWidth(), bmp.GetHeight()),name=add['IP'])
    hbox1 = wx.BoxSizer(wx.HORIZONTAL)
    iptext = wx.StaticText(panel2, label=add['IP'])
    usernametext = wx.StaticText(panel2, label=add['user'])
    passwordtext=wx.StaticText(panel2, label=add['pas'])
    iptext.SetFont(font)
    usernametext.SetFont(font)
    passwordtext.SetFont(font)
    hbox1.Add(iptext,proportion=3, flag=wx.RIGHT, border=8)
    hbox1.Add(usernametext,proportion=2, flag=wx.RIGHT, border=8)
    hbox1.Add(passwordtext,proportion=2, flag=wx.RIGHT, border=8)
    hbox1.Add(bmapBtn, proportion=0)
    hbox1.Add(wx.StaticText(panel2), proportion=4,flag=wx.RIGHT, border=2) # add just for empty space to fit the sizer
    hboxlis.append(hbox1)
    vbox.Add(hbox1, flag=wx.EXPAND|wx.LEFT|wx.RIGHT|wx.TOP, border=10)
    bmapBtn.Bind(wx.EVT_BUTTON, lambda event: self.DeleteIPFromList(event,hboxlis ,vbox,panel2) )


hbox5 = wx.BoxSizer(wx.HORIZONTAL)
hbox5.Add(wx.StaticText(panel2), proportion=2,flag=wx.EXPAND, border=8) # add just for empty space to fit the sizer
btn1 = wx.Button(panel2, label='ADD', size=(70, 30))
btn1.Bind(wx.EVT_BUTTON,self.CloseShowAddressAndOpenAddAdressList)
hbox5.Add(btn1, proportion=1)
btn2 = wx.Button(panel2, label='CLOSE', size=(70, 30))
btn2.Bind(wx.EVT_BUTTON,self.ShowAdressFrame.CloseWindow) #send show address frame as self
hbox5.Add(btn2,proportion=1)


vbox.Add(hbox5)
panel2.SetSizer(vbox)        
panel2.Layout()
panel.Fit(panel2)

【问题讨论】:

    标签: scroll wxpython pan


    【解决方案1】:

    SetupScrolling 方法应该在子项被添加之后和滚动面板的SetSizer 被调用之后被调用。

    【讨论】:

    • def OnResizeScrollBar(self,e): self.ScrollPanel.Layout() self.ScrollPanel.SetupScrolling()
    猜你喜欢
    • 2013-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-22
    • 1970-01-01
    • 2015-07-08
    相关资源
    最近更新 更多