python - 第二个面板没有出现在 wxpython 应用程序中

标签 python user-interface wxpython

我想将 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/

相关文章:

python - sqlite fts3/fts4中的信息存储

python - 如何将 exe 转换回 Python 脚本

python - 什么是Python的Framework构建?

python - 在wxPython中嵌入matplotlib FuncAnimation : Unwanted figure pop-up

user-interface - 黑莓 - 禁用在屏幕打开时显示默认菜单

wxpython - 当我单击 wx.Dialog 中的“确定”或“取消”按钮时,为什么没有触发 EVT_CLOSE?

python - 如何在另一个模型中使用用户模型的过滤方法(django)

python - 如何在 Perl 和/或 C 中池化 Shell 进程

c++ - 在 Windows 上为现有的基于控制台的应用程序创建 QT 应用程序作为 GUI

java - 在 GridBagLayout 上组织 JPanel 时出现问题 (Java)