Я меняю свои панели, уничтожая панель 1, а затем показываю панель 2. Я не могу использовать метод, создающий и скрытие en show, потому что у меня есть другие проблемы. Но после повторной мой макет моя панель очень маленькая. Как я могу сделать его того же размера, что и раньше?wxpython + после смены панели и макета панели редактирования очень маленькая
Это мой testcode
import wx
class Main(wx.Frame):
def __init__(self, parent=None, id=-1, notify_channel="chanMicroanalysis", **kwargs):
# general panel information
wx.Frame.__init__(self, parent, wx.ID_ANY)
self.SetTitle('Microanalysis')
self.backpanel = wx.Panel(self, wx.ID_ANY)
# first panel
self.Choicepanel = wx.Panel(self.backpanel, wx.ID_ANY)
self.lblChoose = wx.StaticText(self.Choicepanel, label="Choose:")
self.btnChooseFilterOnly = wx.Button(self.Choicepanel, wx.ID_ANY, "Filter only ")
self.btnChooseMA = wx.Button(self.Choicepanel, wx.ID_ANY, "Microanalyse")
self.btnChooseCellInfo = wx.Button(self.Choicepanel, wx.ID_ANY, " CellInfo ")
self.btnChooseReport = wx.Button(self.Choicepanel, wx.ID_ANY, "Report")
# second panel: cellinfo
self.test1 =wx.Panel(self.backpanel, wx.ID_ANY)
self.Cellinfopanel = self.test1
self.lblChooseingo = wx.StaticText(self.Cellinfopanel, label="Choose:")
self.btnChooseFilter = wx.Button(self.Cellinfopanel, wx.ID_ANY, "Filter only ")
self.btnChooseprr = wx.Button(self.Cellinfopanel, wx.ID_ANY, "Microanalyse")
self.btnChooseCell = wx.Button(self.Cellinfopanel, wx.ID_ANY, " CellInfo ")
self.btnChoose = wx.Button(self.Cellinfopanel, wx.ID_ANY, "Report")
self._do_layout()
self._do_bindings()
def _do_layout(self):
self.h_main_sizer = wx.BoxSizer()
self.h_centerbuttonsizer = wx.BoxSizer()
self.h_centerbutton1sizer = wx.BoxSizer()
self.v_firstsizer = wx.BoxSizer(wx.VERTICAL)
self.v_secondsizer = wx.BoxSizer(wx.VERTICAL)
self.v_thirdsizer = wx.BoxSizer(wx.VERTICAL)
self.v_fourthsizer = wx.BoxSizer(wx.VERTICAL)
self.v_buttonsizer = wx.BoxSizer(wx.VERTICAL)
self.v_button1sizer = wx.BoxSizer(wx.VERTICAL)
########################################"
self.v_firstsizer.Add(self.Choicepanel, 1, wx.EXPAND)
self.v_buttonsizer.Add(self.lblChoose, 0, wx.CENTER)
self.v_buttonsizer.Add(self.btnChooseFilterOnly, 0, wx.EXPAND)
self.v_buttonsizer.Add(self.btnChooseMA, 0, wx.EXPAND)
self.v_buttonsizer.Add(self.btnChooseCellInfo, 0, wx.EXPAND)
self.v_buttonsizer.Add(self.btnChooseReport, 0, wx.EXPAND)
self.h_centerbuttonsizer.AddStretchSpacer(1)
self.h_centerbuttonsizer.Add(self.v_buttonsizer, 0, wx.CENTER)
self.h_centerbuttonsizer.AddStretchSpacer(1)
self.Choicepanel.SetSizer(self.h_centerbuttonsizer)
self.h_centerbuttonsizer.Fit(self.Choicepanel)
########################################"
self.v_secondsizer.Add(self.Cellinfopanel, 5, wx.EXPAND)
self.v_button1sizer.Add(self.lblChooseingo, 0, wx.CENTER)
self.v_button1sizer.Add(self.btnChooseFilter, 0, wx.EXPAND)
self.v_button1sizer.Add(self.btnChooseprr, 0, wx.EXPAND)
self.v_button1sizer.Add(self.btnChooseCell, 0, wx.EXPAND)
self.v_button1sizer.Add(self.btnChoose, 0, wx.EXPAND)
self.h_centerbutton1sizer.AddStretchSpacer(1)
self.h_centerbutton1sizer.Add(self.v_button1sizer, 0, wx.CENTER)
self.h_centerbutton1sizer.AddStretchSpacer(1)
self.Cellinfopanel.SetSizer(self.h_centerbutton1sizer)
self.h_centerbutton1sizer.Fit(self.Choicepanel)
########################################"
self.h_main_sizer.Add(self.v_firstsizer, 20, wx.EXPAND)
self.h_main_sizer.Add(self.v_secondsizer, 20, wx.EXPAND)
self.backpanel.SetSizer(self.h_main_sizer)
self.h_main_sizer.Fit(self)
#
# self.Choicepanel.Show()
# self.Cellinfopanel.Hide()
# self.MApanel.Hide()
# self.Reportpanel.Hide()
self.Choicepanel.Show()
self.Cellinfopanel.Show()
self.statusMAPanelShown = False
def _do_bindings(self):
self.btnChooseprr.Bind(wx.EVT_BUTTON, self.on_chooseMA)
def on_chooseMA(self, event):
print "in choose MA"
self.showMAPanel()
self._do_layout()
#
# self.Layout()
def showMAPanel(self):
print "in showmapanel"
self.test1.Destroy()
self.test2 =wx.Panel(self.backpanel, wx.ID_ANY)
self.Cellinfopanel = self.test2
self.lblChooseingo = wx.StaticText(self.Cellinfopanel, label="test:")
self.btnChooseFilter = wx.Button(self.Cellinfopanel, wx.ID_ANY, "test1 ")
self.btnChooseprr = wx.Button(self.Cellinfopanel, wx.ID_ANY, "test2")
self.btnChooseCell = wx.Button(self.Cellinfopanel, wx.ID_ANY, " test3 ")
self.btnChoose = wx.Button(self.Cellinfopanel, wx.ID_ANY, "test4")
if __name__ == '__main__':
app = wx.PySimpleApp()
MAview = Main(None, wx.ID_ANY)
MAview.Maximize()
MAview.Show()
app.MainLoop()
EDIT: Это не тот же вопрос, как это предлагается. В предлагаемом вопросе я использовал метод скрыть и показать, а также была проблема с изменением размера, но там панель была большой. Я фактически решил другой вопрос, и я добавлю ответ.
Возможный дубликат [wxpython: overlay wx.panel с другим wx.panel, но новая панель не изменяет размер справа] (http://stackoverflow.com/questions/42228800/wxpython-overlay-wx-panel-with- другой-wx-panel-but-new-panel-doesnt-resize-ri) – user2682863
, пожалуйста, не spampost, если вы хотите переформулировать свой вопрос, перепишите исходное сообщение – user2682863
hello user2682863, это также мой вопрос , но это еще одна проблема, а не повторение одного и того же вопроса. Но tx для этого, потому что я забыл ответить на свой вопрос. – VeVi