继承问题:使用wxRuby分离方法时的ArgumentError

时间:2015-06-25 22:26:55

标签: ruby inheritance wxruby

我有以下用于关闭面板的功能:

def close_active_panel
  if (@active_panel and @active_panel.class <= Wx::Window)
    @sizer.detach(@active_panel)
    @sizer.remove(0) # 0 is index of first and only item, the active panel
    @active_panel.destroy_children
    @active_panel.destroy
  end
end

这大部分时间都有效,但偶尔(我似乎无法找到发生这种情况的模式),它会引发以下异常:

ArgumentError
Wrong arguments for overloaded method 'wxSizer.Detach'. Possible C/C++ prototypes are: bool wxSizer.Detach(wxWindow *window) bool wxSizer.Detach(wxSizer *sizer) bool wxSizer.Detach(size_t index)

这种情况似乎很奇怪,因为它甚至应该使用detach方法的唯一方法是active_panel是否继承自Wx :: Window类。

我在这里缺少某种继承技巧吗?我已经尝试输出活动面板及其父级的类,以确保它确实继承自Wx :: Window,并且问题仍然存在。任何帮助将不胜感激。

0 个答案:

没有答案