【问题标题】:Adding Matplotlib to Panel from wxglade从 wxglade 将 Matplotlib 添加到面板
【发布时间】:2014-07-31 20:47:03
【问题描述】:

您好,我正在尝试从下面的链接中添加一个 matplotlib 图表示例

Embedding a matplotlib figure inside a WxPython panel

使用 WXGlade 生成的 wxpython 框架内的面板。面板是需要图表的 panel_22。有什么建议吗?

    #!/usr/bin/env python
 # -*- coding: CP1252 -*-
 #
 # generated by wxGlade 0.6.8 (standalone edition) on Thu Jul 31 22:23:21 2014
#

import wx

# begin wxGlade: dependencies
import gettext
# end wxGlade

# begin wxGlade: extracode
# end wxGlade


    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.panel_22 = wx.Panel(self, wx.ID_ANY)

        self.__set_properties()
        self.__do_layout()
        # end wxGlade

    def __set_properties(self):
        # begin wxGlade: MyFrame1.__set_properties
        self.SetTitle(_("frame_2"))
        # end wxGlade

    def __do_layout(self):
        # begin wxGlade: MyFrame1.__do_layout
        sizer_21 = wx.BoxSizer(wx.VERTICAL)
        grid_sizer_4 = wx.GridSizer(3, 3, 0, 0)
        grid_sizer_4.Add(self.panel_22, 1, wx.EXPAND, 0)
        sizer_21.Add(grid_sizer_4, 1, wx.EXPAND, 0)
        self.SetSizer(sizer_21)
        sizer_21.Fit(self)
        self.Layout()
        # end wxGlade

    # end of class MyFrame1
if __name__ == "__main__":
    gettext.install("app") # replace with the appropriate catalog name

    app =  wx.App(False)
    wx.InitAllImageHandlers()
    frame_2 = MyFrame1(None, wx.ID_ANY, "")
    app.SetTopWindow(frame_2)
    frame_2.Show()
    app.MainLoop()

【问题讨论】:

标签: matplotlib charts wxpython


【解决方案1】:

它是否在林间空地中生成似乎并不重要。所以试试

先添加两个导入

from matplotlib.backends.backend_wxagg import FigureCanvasWxAgg as FigureCanvas
from matplotlib.figure import Figure

然后在__do_layout开头添加两行:

def __do_layout(self):

    self.figure = Figure()
    self.canvas = FigureCanvas(self,panel_22, -1, self.figure)

    # begin wxGlade: MyFrame1.__do_layout

【讨论】:

  • 感谢 otterb,但是我现在得到一个 nameError: global name 'Panel_22' is not defined
  • 啊,我改变了 self,panel_22 也 self.panel_22 并且它有效!谢谢
猜你喜欢
  • 2012-01-08
  • 1970-01-01
  • 1970-01-01
  • 2016-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-07
相关资源
最近更新 更多