wxPython的“初始”情况

时间:2012-03-02 22:52:55

标签: python wxpython

我知道,标题很有趣。它就像电影“初始”的情况。在梦中梦见梦。 大家好,我正在使用wxpython制作应用程序。 我想实现这样的目标。(这只是问题的概念)

func1(self,event):
      some widgets added
      func2
func2(self,event):
      remove previous widgets (by using event.GetEventObject().GetParent().Hide())
      add new ones
      func3
func3(self,event):
      remove widgets added in func2
      recall widgets added in func1 (event.GetEventObject().GetParent().Show())

我已经遍历了太多内容,比如从函数跳转到其他嵌套3次 功能,我没有事件跟踪。

如果我使用

存储事件的ID(在列表中)
   event.GetId() 

在遍历每个函数时,如果我可以使用这些id,有没有办法 替换

event.GetEventObject().GetParent().Show()
event.GetEventObject().GetParent().Hide()

id1.GetEventObject().GetParent().Hide()
id2.GetEventObject().GetParent().Show()

我只是想知道这种事情是可能的吗? 或者这是一种更简单的方法吗?

1 个答案:

答案 0 :(得分:0)

如果还有任何问题,我找到了一些方法...... 首先,你不需要使用ID .....更简单的方法 创建不同的面板........ 如果你想隐藏一个,你可以简单地做

panelname.Hide()  

当你想要展示另一个时,

panelname.Show() # Or this also works (event.GetEventObject().GetParent().Show()\Hide())

注意:1)记得给所有小部件(按钮等)单独的ID(或-1会这样做)。 2)您也可以使用函数调用创建重叠面板。(例如 - 单击按钮后)。 3)您还可以创建一个公共面板(父面板),然后在 init 主体中创建子面板。然后你可以简单地隐藏并在绑定的功能中显示这些面板(可能是一个按钮等)。

我这样解决了我的问题。不需要使用GetId()。但可能还有其他方式。如果你有其他想法,请分享。我希望有一天能帮到某人......谢谢大家。