0
다음 버튼을 누르면 패널을 전환하는 wx 2.8 (Python 2.7) 기본 GUI가 있습니다. GUI를 열면 최대화됩니다. 그러나 Windows 7/10에서 일부 이유는 전체 윈도우의 크기가 최소 크기로 조정되지만 우분투 14.04에서는 그렇지 않습니다. 누군가 내가 여기서 뭘 잘못하고 있는지 말해 줄 수 있습니까? 창 크기를 조정하고 싶지 않습니다. 최대화 상태로 유지하고 싶습니다. 전체 코드는 다음과 같습니다 :Windows에서 패널을 숨기거나 표시 할 때 wxPython 의도하지 않은 윈도우 크기 조절
#!/usr/bin/env python
import wx
class MainWindow(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, wx.ID_ANY, "Test")
self.SetMinSize((1000, 700))
self.Maximize(True)
self.panel_one = Panel_One(self)
self.panel_two = Panel_Two(self)
self.panel_three = Panel_Three(self)
self.panel_two.Hide()
self.panel_three.Hide()
self.PanelSizer = wx.BoxSizer(wx.VERTICAL)
self.PanelSizer.Add(self.panel_one, 1, wx.CENTER|wx.EXPAND|wx.ALL)
self.PanelSizer.Add(self.panel_two, 1, wx.CENTER|wx.EXPAND|wx.ALL)
self.PanelSizer.Add(self.panel_three, 1, wx.CENTER|wx.EXPAND|wx.ALL)
self.SetSizer(self.PanelSizer)
self.Center()
def ShowPanelTwo(self, event):
self.panel_one.Hide()
self.panel_two.Show()
self.panel_two.TopSizer.Fit(self)
def ShowPanelThree(self, event):
self.panel_two.Hide()
self.panel_three.Show()
self.panel_three.TopSizer.Fit(self)
class Panel_One(wx.Panel):
def __init__(self, parent):
wx.Panel.__init__(self, parent)
self.parent = parent
self.list = wx.ListCtrl(self, wx.ID_ANY, style = wx.LC_REPORT | wx.BORDER_SUNKEN)
self.list.InsertColumn(0, 'List 1')
self.nextbutton = wx.Button(self, wx.ID_ANY, label="Next", size=(80,-1))
self.nextbutton.Bind(wx.EVT_BUTTON, self.parent.ShowPanelTwo)
self.VSizer = wx.BoxSizer(wx.VERTICAL)
self.HSizer = wx.BoxSizer(wx.HORIZONTAL)
self.TopSizer = wx.BoxSizer(wx.VERTICAL)
self.VSizer.Add(self.list, 1, wx.ALIGN_CENTER|wx.EXPAND, 5)
self.HSizer.Add(self.VSizer, 1, wx.ALIGN_CENTER|wx.EXPAND, 5)
self.TopSizer.Add(self.HSizer, 1, wx.ALIGN_CENTER|wx.EXPAND, 5)
self.TopSizer.Add(self.nextbutton, 0, wx.EXPAND, 5)
self.SetSizer(self.TopSizer)
class Panel_Two(wx.Panel):
def __init__(self, parent):
wx.Panel.__init__(self, parent)
self.parent = parent
self.list = wx.ListCtrl(self, wx.ID_ANY, style = wx.LC_REPORT | wx.BORDER_SUNKEN)
self.list.InsertColumn(0, 'List 2')
self.nextbutton = wx.Button(self, wx.ID_ANY, label="Next", size=(80,-1))
self.nextbutton.Bind(wx.EVT_BUTTON, self.parent.ShowPanelThree)
self.VSizer = wx.BoxSizer(wx.VERTICAL)
self.HSizer = wx.BoxSizer(wx.HORIZONTAL)
self.TopSizer = wx.BoxSizer(wx.VERTICAL)
self.VSizer.Add(self.list, 1, wx.ALIGN_CENTER|wx.EXPAND, 5)
self.HSizer.Add(self.VSizer, 1, wx.ALIGN_CENTER|wx.EXPAND, 5)
self.TopSizer.Add(self.HSizer, 1, wx.ALIGN_CENTER|wx.EXPAND, 5)
self.TopSizer.Add(self.nextbutton, 0, wx.EXPAND, 5)
self.SetSizer(self.TopSizer)
class Panel_Three(wx.Panel):
def __init__(self, parent):
wx.Panel.__init__(self, parent)
self.parent = parent
self.list = wx.ListCtrl(self, wx.ID_ANY, style = wx.LC_REPORT | wx.BORDER_SUNKEN)
self.list.InsertColumn(0, 'List 3')
self.VSizer = wx.BoxSizer(wx.VERTICAL)
self.HSizer = wx.BoxSizer(wx.HORIZONTAL)
self.TopSizer = wx.BoxSizer(wx.VERTICAL)
self.VSizer.Add(self.list, 1, wx.ALIGN_CENTER|wx.EXPAND, 5)
self.HSizer.Add(self.VSizer, 1, wx.ALIGN_CENTER|wx.EXPAND, 5)
self.TopSizer.Add(self.HSizer, 1, wx.ALIGN_CENTER|wx.EXPAND, 5)
self.SetSizer(self.TopSizer)
if __name__ == '__main__':
app = wx.App(False)
frame = MainWindow()
frame.Show()
app.MainLoop()
그것은 나를 위해 그것을했다! 고마워요. D –