【问题标题】:wxWidgets in Python -- SetContainingSizer(): Adding a window to the same sizer twice?Python中的wxWidgets——SetContainingSizer():将一个窗口添加到同一个sizer两次?
【发布时间】:2013-08-15 20:39:47
【问题描述】:

我是 wxWidgets 的新手。我很想使用其他人为数据分析工具提供 GUI 的例程。我无法联系到作者...但我在第 106 行收到此错误:

PyAssertionError: C++ assertion "!sizer || m_containingSizer != sizer" failed at /BUILD/wxPython-src-2.9.2.4/src/common/wincmn.cpp(2275) in SetContainingSizer(): Adding a window to the same sizer twice?

有问题的代码如下所示:

        coord_panel = wx.Panel(pane, WID.ANY)
    grid_sizer = wx.FlexGridSizer(3,4)
    coord_panel.SetSizer(grid_sizer)
    rc_x_label =  wx.StaticText(coord_panel, WID.ANY, "x :")
    rc_y_label =  wx.StaticText(coord_panel, WID.ANY, "y :")
    rc_z_label =  wx.StaticText(coord_panel, WID.ANY, "z :")
    self.rc_x = wx.TextCtrl(coord_panel, WID.ANY, style=wx.TE_READONLY, size=(75,-1))
    self.rc_y = wx.TextCtrl(coord_panel, WID.ANY, style=wx.TE_READONLY, size=(75,-1))
    self.rc_z = wx.TextCtrl(coord_panel, WID.ANY, style=wx.TE_READONLY, size=(75,-1))
    empty_label = wx.StaticText(coord_panel, WID.ANY, "  ")
    self.edit_cam_btn = wx.Button(coord_panel, -1, "Edit", size=(50,-1))
    grid_sizer.AddMany([(rc_x_label, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT),
                        (self.rc_x, 0), (empty_label, 0), (empty_label, 0),\
                        (rc_y_label, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT), \
                        (self.rc_y, 0), (empty_label, 0), (self.edit_cam_btn, 0),\
                        (rc_z_label, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT), \
                        (self.rc_z, 0), (empty_label, 0)])

它在grid_sizer.AddMany 行生成错误。有人看到这个问题吗?

谢谢!

【问题讨论】:

    标签: python user-interface wxwidgets


    【解决方案1】:

    代码不正确,不能将同一个empty_label控件多次添加到sizer。您每次都需要创建一个新控件(幸运的是,对于空标签来说这并不难)。

    一个更好的主意是完全避免使用空标签并使用分隔符或仅使用行内间隙,但这需要对您的代码进行更多更改。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-04
      • 1970-01-01
      相关资源
      最近更新 更多