wxPython - Как получить объект Top Frame или Application - PullRequest
0 голосов
/ 20 сентября 2010

Меня немного смущает, как получить верхний кадр в приложении.Я запускаю свое приложение с обычной

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()

Учитывая, что у меня глубоко вложенная последовательность вызовов классов, я бы хотел, чтобы один из моих объектов в нижней части иерархии вызовов получил доступ к некоторой панели приложения(в основном вставьте некоторые элементы графического интерфейса в эту панель).Один из способов, который я мог бы придумать, - это включить объект приложения ('self') в качестве параметра в мою последовательность вызовов объектов, чтобы последний объект имел доступ к объекту приложения.Но это кажется довольно запутанным, учитывая, что все промежуточные объекты не нуждаются в доступе к приложению.

Есть ли чистый способ доступа к объекту приложения?Кроме того, что именно я хочу получить доступ - объект "кадр" или объект "приложение"?Я не уверен в разнице между этими двумя объектами.

1 Ответ

3 голосов
/ 20 сентября 2010

Я обычно не рекомендую делать это таким образом, но, вероятно, вам нужен следующий метод:

topFrame = wx.GetTopLevelParent ()

Если вам нужна связь между классами, я обычно использую PubSub. В любом случае, я надеюсь, что это поможет!

...