我想将 2 个面板并排(水平)放置在另一个面板上,但第二个面板没有显示:
import wx
szflags = wx.EXPAND | wx.ALL
min_height = 50
height_ratio = 4
pborder = 10
lborder = 5
class ChartPanel(wx.Panel):
def __init__(self, *args, **kwargs):
wx.Panel.__init__(self, *args, **kwargs)
self.SetBackgroundColour(wx.Colour(226,226,226))
self.st = wx.StaticText(self, label='CHART PANEL')
#self.chart = bar_line.CanvasPanel(self, "320")
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(self.st, 1 , szflags , lborder)
#sizer.Add(self.chart, 1 , szflags)
self.SetSizer(sizer)
class NotebookPage(wx.Panel):
def __init__(self, *args, **kwargs):
fleet = kwargs.pop('fleet_name', None)
wx.Panel.__init__(self, *args, **kwargs)
self.mainPanel = NotebookPage_MainPanel(self, name='Notebook_Page_MainPanel', fleet_name=fleet)
self.chartPanel = ChartPanel(self, name='Notebook_Page_ChartPanel')
sizer = wx.BoxSizer(wx.HORIZONTAL)
sizer.Add(self.mainPanel, 1, wx.EXPAND|wx.ALL,border=10)
sizer.Add(self.chartPanel, 1, wx.EXPAND|wx.ALL,border=10)
self.SetSizer(sizer)
这里没有显示 ChartPanel。上面有什么问题吗?
最佳答案
实际上您需要创建一个父面板并将您的两个面板添加到其中..
创建主面板,它包含两个子面板,即你的笔记本页面和图表面板
class NotebookPage(wx.Panel):
def __init__(self, *args, **kwargs):
fleet = kwargs.pop('fleet_name', None)
wx.Panel.__init__(self, *args, **kwargs)
self.masterPanel=wx.Panel(self,-1)
self.mainPanel = NotebookPage_MainPanel(self.masterpanel, name='Notebook_Page_MainPanel', fleet_name=fleet)
self.chartPanel = ChartPanel(self.masterpanel, name='Notebook_Page_ChartPanel')
sizer = wx.BoxSizer(wx.HORIZONTAL)
sizer.Add(self.mainPanel, 1, wx.EXPAND|wx.ALL,border=10)
sizer.Add(self.chartPanel, 1, wx.EXPAND|wx.ALL,border=10)
self.SetSizer(sizer)
引用你可以看到这个link
其次,他实现了相同的多个面板 link
关于python - 第二个面板没有出现在 wxpython 应用程序中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23061378/