1
4 개의 기본 탭이있는 GUI를 만들었습니다. 4 개의 탭이 반으로 나뉘며 다른 노트북은 왼쪽에 있고 빈 패널은 오른쪽에 있습니다 (그래프가 이동합니다). 이리). 내 GUI의 아래 이미지를 참조하십시오. wxPython : 노트북 내의 노트북 크기 조정
문제는 내가 노트북의 내용에 맞게 왼쪽의 노트북 크기를 조정할 수 없다는 것입니다. 내용을 맞추면 노트북의 오른쪽을 잡아 당기고 싶습니다. 크기도 고정되도록하고 싶습니다. 오른쪽 구석을 클릭하고 드래그하여 창 크기를 조정하면 노트북의 크기는 조정되지 않지만 오른쪽 패널은 사용자가 클릭하고 끌 었는지 여부에 따라 커지고 작아집니다. 아래
코드 :
import wx
import wx.grid
class MyFrame1(wx.Frame):
def __init__(self, *args, **kwds):
# begin wxGlade: MyFrame1.__init__
kwds["style"] = wx.DEFAULT_FRAME_STYLE
wx.Frame.__init__(self, *args, **kwds)
self.notebook_2 = wx.Notebook(self, -1, style=0)
self.notebook_2_pane_1 = wx.Panel(self.notebook_2, -1)
self.notebook_2_pane_2 = wx.Panel(self.notebook_2, -1)
self.notebook_2_pane_3 = wx.Panel(self.notebook_2, -1)
self.notebook_2_pane_4 = wx.Panel(self.notebook_2, -1)
self.notebook_3 = wx.Notebook(self.notebook_2_pane_1, -1, style=0)
self.notebook_3a = wx.Notebook(self.notebook_3, -1, style=0)
self.notebook_4 = wx.Notebook(self.notebook_3, -1, style=0)
self.panel_2a = wx.Panel(self.notebook_4, -1)
self.panel_2b = wx.Panel(self.notebook_3a, -1)
self.panel_2c = wx.Panel(self.notebook_3a, -1)
self.panel_2 = wx.Panel(self.notebook_3, -1)
self.panel_1 = wx.Panel(self.notebook_2_pane_1, -1)
self.grid_1 = wx.grid.Grid(self.panel_2a, -1, size=(1, 1))
self.grid_2 = wx.grid.Grid(self.notebook_4, -1, size=(1, 1))
self.bws_btn = wx.Button(self.panel_2b, -1, "Browse...")
self.tctrl = wx.TextCtrl(self.panel_2b, -1)
self.filename = wx.StaticText(self.panel_2b, -1, 'File:')
self.limitdata = wx.StaticText(self.panel_2b, -1, 'Limit Data:')
self.tctrl3 = wx.TextCtrl(self.panel_2b, -1, '200')
self.disp_sel_pk = wx.StaticText(self.panel_2c, -1, 'Display Selected Data')
self.toggle = wx.ToggleButton(self.panel_2c, 1, 'Toggle')
self.add_peak = wx.StaticText(self.panel_2c, -1, 'Add Data:')
self.add_peak_tctrl = wx.TextCtrl(self.panel_2c, -1, 'Test')
self.add_peak_btn = wx.Button(self.panel_2c, -1, "Add")
self.capt_click = wx.Button(self.panel_2c, -1, "Capture Mouse Click")
self.save_btn = wx.Button(self.panel_2a, -1, "Save as CSV file")
self.update_btn = wx.Button(self.panel_2a, -1, "Update")
self.__set_properties()
self.__do_layout()
# end wxGlade
def __set_properties(self):
# begin wxGlade: MyFrame1.__set_properties
self.SetTitle("frame_2")
self.SetMinSize((800, 600))
self.grid_1.CreateGrid(30, 3)
self.grid_1.SetRowLabelSize(0) # hide the rows
self.grid_1.SetColLabelValue(0, "Data ID")
self.grid_1.SetColLabelValue(1, "Test")
self.grid_1.SetColLabelValue(2, "Frquency")
self.grid_2.CreateGrid(30, 13)
self.grid_2.SetRowLabelSize(30)
# end wxGlade
def __do_layout(self):
# begin wxGlade: MyFrame1.__do_layout
sizer_1 = wx.BoxSizer(wx.VERTICAL)
sizer_2 = wx.BoxSizer(wx.VERTICAL)
sizer_3 = wx.BoxSizer(wx.HORIZONTAL)
sizer_4 = wx.BoxSizer(wx.HORIZONTAL)
sizer_5 = wx.BoxSizer(wx.HORIZONTAL)
sizer_6 = wx.BoxSizer(wx.HORIZONTAL)
sizer_5.Add(self.filename, flag=wx.EXPAND | wx.RIGHT | wx.Left | wx.TOP | wx.BOTTOM, border=10)
sizer_4.Add(self.bws_btn, flag=wx.EXPAND | wx.RIGHT | wx.Left | wx.TOP | wx.BOTTOM, border=10)
sizer_4.Add(self.tctrl, flag=wx.EXPAND | wx.RIGHT | wx.Left | wx.TOP | wx.BOTTOM, border=10)
sizer_6.Add(self.limitdata, flag=wx.EXPAND | wx.RIGHT | wx.Left | wx.TOP | wx.BOTTOM, border=10)
sizer_6.Add(self.tctrl3, flag=wx.EXPAND | wx.RIGHT | wx.Left | wx.TOP | wx.BOTTOM, border=10)
sizer_1.Add(sizer_5)
sizer_1.Add(sizer_4)
sizer_1.Add(sizer_6)
sizer_1a = wx.BoxSizer(wx.VERTICAL)
sizer_1a.Add(self.grid_1, 1, wx.EXPAND, 0)
sizer_1a.Add(self.save_btn, flag=wx.EXPAND | wx.RIGHT | wx.Left | wx.TOP | wx.BOTTOM, border=10)
sizer_1a.Add(self.update_btn, flag=wx.EXPAND | wx.RIGHT | wx.Left | wx.TOP | wx.BOTTOM, border=10)
self.panel_2b.SetSizer(sizer_1)
self.panel_2a.SetSizer(sizer_1a)
sizer_1b = wx.BoxSizer(wx.VERTICAL)
sizer_4a = wx.BoxSizer(wx.HORIZONTAL)
sizer_5a = wx.BoxSizer(wx.HORIZONTAL)
sizer_6a = wx.BoxSizer(wx.HORIZONTAL)
sizer_7a = wx.BoxSizer(wx.HORIZONTAL)
sizer_8a = wx.BoxSizer(wx.HORIZONTAL)
sizer_4a.Add(self.disp_sel_pk, flag=wx.EXPAND | wx.RIGHT | wx.Left | wx.TOP | wx.BOTTOM, border=10)
sizer_5a.Add(self.toggle, flag=wx.EXPAND | wx.RIGHT | wx.Left | wx.TOP | wx.BOTTOM, border=10)
sizer_6a.Add(self.add_peak, flag=wx.EXPAND | wx.RIGHT | wx.Left | wx.TOP | wx.BOTTOM, border=10)
sizer_7a.Add(self.add_peak_tctrl, flag=wx.EXPAND | wx.RIGHT | wx.Left | wx.TOP | wx.BOTTOM, border=10)
sizer_7a.Add(self.add_peak_btn, flag=wx.EXPAND | wx.RIGHT | wx.Left | wx.TOP | wx.BOTTOM, border=10)
sizer_8a.Add(self.capt_click, flag=wx.EXPAND | wx.RIGHT | wx.Left | wx.TOP | wx.BOTTOM, border=10)
sizer_1b.Add(sizer_4a)
sizer_1b.Add(sizer_5a)
sizer_1b.Add(sizer_6a)
sizer_1b.Add(sizer_7a)
sizer_1b.Add(sizer_8a)
self.panel_2c.SetSizer(sizer_1b)
self.notebook_3.AddPage(self.notebook_3a, "Inputs")
self.notebook_3.AddPage(self.notebook_4, "Results")
self.notebook_3a.AddPage(self.panel_2b, "Graph")
self.notebook_3a.AddPage(self.panel_2c, "Calc")
self.notebook_4.AddPage(self.panel_2a, "Info")
self.notebook_4.AddPage(self.grid_2, "Info2")
sizer_3.Add(self.notebook_3, 1, wx.EXPAND, 0)
sizer_3.Add(self.panel_1, 1, wx.EXPAND, 0)
self.notebook_2_pane_1.SetSizer(sizer_3)
self.notebook_2.AddPage(self.notebook_2_pane_1, "Setup")
self.notebook_2.AddPage(self.notebook_2_pane_2, "Optimisation")
self.notebook_2.AddPage(self.notebook_2_pane_3, "Algorithm")
self.notebook_2.AddPage(self.notebook_2_pane_4, "Data")
sizer_2.Add(self.notebook_2, 1, wx.EXPAND, 0)
self.SetSizer(sizer_2)
sizer_2.Fit(self)
self.Layout()
if __name__ == "__main__":
app = wx.PySimpleApp(0)
wx.InitAllImageHandlers()
frame_2 = MyFrame1(None, -1, "")
app.SetTopWindow(frame_2)
frame_2.Show()
app.MainLoop()