import wx import wx.lib.scrolledpanel as scrolled class MsgWindow(wx.Frame): def __init__(self, parent, id, title): wx.Frame.__init__(self, parent, id, title,size=(300,640),pos=(600,100)) p_panel = wx.Panel(self) panel = scrolled.ScrolledPanel(p_panel,-1,size=(260,350),style=wx.DOUBLE_BORDER) self.scroller = wx.ScrolledWindow(panel,-1,pos=(240,0)) self.scroller.SetScrollbars(0,10,250,700) bt = wx.StaticText(p_panel,style=wx.ALIGN_RIGHT, label='ts') bt1 = wx.StaticText(panel,style=wx.ALIGN_CENTER_HORIZONTAL,label='label') bt1.SetFont(wx.Font(20,wx.FONTFAMILY_DEFAULT,wx.FONTSTYLE_NORMAL,wx.FONTWEIGHT_NORMAL)) hbox = wx.BoxSizer(wx.HORIZONTAL) hbox.Add(bt1,1,flag=wx.CENTER|wx.ALL ,border=10) panel.SetSizer(hbox) hbox.Fit(panel) vbox= wx.BoxSizer(wx.VERTICAL) vbox.Add(bt,1,flag=wx.CENTER|wx.ALL ,border=10) vbox.Add(panel,1,flag=wx.EXPAND|wx.ALL,border=10) p_panel.SetSizer(vbox) if __name__ == '__main__': app = wx.App(redirect=False) msg_win = MsgWindow(None, -1, u'消息') msg_win.Show(True) app.MainLoop()
已解决。
把代码改为:
import wx import wx.lib.scrolledpanel as scrolled class MsgWindow(wx.Frame): def __init__(self, parent, id, title): wx.Frame.__init__(self, parent, id, title,size=(300,640),pos=(600,100)) p_panel = wx.Panel(self) panel = scrolled.ScrolledPanel(p_panel,-1,size=(260,350),style=wx.DOUBLE_BORDER) self.scrolled_panel.SetAutoLayout(1) self.scrolled_panel.SetupScrolling() self.scroller = wx.ScrolledWindow(panel,-1,pos=(240,0)) self.scroller.SetScrollbars(0,10,250,700) bt = wx.StaticText(p_panel,style=wx.ALIGN_RIGHT, label='ts') bt1 = wx.StaticText(panel,style=wx.ALIGN_CENTER_HORIZONTAL,label='label') bt1.SetFont(wx.Font(20,wx.FONTFAMILY_DEFAULT,wx.FONTSTYLE_NORMAL,wx.FONTWEIGHT_NORMAL)) hbox = wx.BoxSizer(wx.HORIZONTAL) hbox.Add(bt1,1,flag=wx.CENTER|wx.ALL ,border=10) panel.SetSizer(hbox) hbox.Fit(panel) vbox= wx.BoxSizer(wx.VERTICAL) vbox.Add(bt,1,flag=wx.CENTER|wx.ALL ,border=10) vbox.Add(panel,1,flag=wx.EXPAND|wx.ALL,border=10) p_panel.SetSizer(vbox) if __name__ == '__main__': app = wx.App(redirect=False) msg_win = MsgWindow(None, -1, u'消息') msg_win.Show(True) app.MainLoop()