wxPython - 如何获取Top Frame或Application对象

时间:2010-09-20 13:18:29

标签: wxpython frame

我对如何在应用程序中获取顶部框架感到困惑。我用通常的

开始我的应用程序
class AppFrame(ClientGUI.MyFrame): #ClientGUI.MyFrame generated by wxformbuilder. 
def __init__(self):
    # create some panels. 
    # Create some object classes that invoke objects of other classes.
    # .. do other stuff ... 

if __name__ == '__main__':
    app = wx.App(0)
    frame = AppFrame()
    frame.Show()
    app.MainLoop()

鉴于我有一个深度嵌套的类调用序列,我希望调用层次结构底部的一个对象访问应用程序中的某个面板(基本上将一些gui内容放入该面板中)。我能想到的一种方法是将应用程序对象('self')作为参数包含在我的对象调用序列中,以便最后一个对象可以访问应用程序对象。但考虑到所有中间对象都不需要访问应用程序,这似乎相当复杂。

是否有一种干净的方式来访问应用程序对象?另外,我到底想要访问什么 - “框架”对象或“app”对象?我不确定这两个对象之间的区别。

1 个答案:

答案 0 :(得分:3)

我通常不建议这样做,但你想要的方法可能是:

topFrame = wx.GetTopLevelParent()

如果您需要课间沟通,我通常会使用PubSub。无论如何,我希望有所帮助!