【发布时间】:2014-04-14 13:26:08
【问题描述】:
我想将 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 不显示。上面有什么问题?
【问题讨论】:
-
不确定,但您可能需要执行
Refresh和/或Fit/FitInside以使sizer 重新计算尺寸。 -
当我查看小部件检查工具时,它说父面板的大小为 (892,440),第二个面板的位置为 (902,10)。你觉得有问题吗??
-
似乎还可以。你到底看到了什么? (不能自己尝试,因为 notebookpage_mainpanel 的源不存在)
-
请提供一个可运行的小型示例应用程序,我们可以用它来帮助您。还要知道哪个 OS、wx 和 Python 版本也不错。
标签: python user-interface wxpython