кадр обновления wxPython

Название говорит само за себя. Я не могу найти способ сделать это... .Refresh() ничего не делает, кроме сбоя программы.

Ситуация, в которой я нахожусь, заключается в том, что у меня есть фрейм, который запускается из «основного» фрейма. Этот фрейм вносит изменения в строку меню и панель «основного» фрейма. Что я могу вызвать, чтобы обновить основной кадр со второго кадра?


person Community    schedule 19.07.2011    source источник
comment
Можете ли вы опубликовать код/следы стека/ошибки? Потребуется нечто большее, чем это не работает. Я использую Refresh() во многих вещах, и он отлично работает.   -  person g.d.d.c    schedule 19.07.2011
comment
Ну, если честно, я понятия не имею, что бежать. Я использовал .GetParent() для выбора кадра (метод находится на панели), но он выбирает второй кадр, а не исходный.   -  person    schedule 19.07.2011
comment
Если ваша родословная выглядит так: Frame1 › Frame2 › Panel, тогда вы можете получить доступ к Frame1 из Panel как Panel.GrandParent. Может быть достаточно вызвать Refresh, когда у вас есть нужный элемент. Это действительно во многом зависит от того, как структурировано ваше приложение и что вы меняете.   -  person g.d.d.c    schedule 19.07.2011


Ответы (1)


Это можно сделать с помощью pubsub. Попросите второй фрейм опубликовать сообщение для первого фрейма, сообщающее ему об обновлении. Я действительно думаю, что вы захотите использовать Layout(). Это то, что я обычно использую, когда удаляю или добавляю видимые элементы. Вам не нужно Refresh() меню при удалении элементов из него. По крайней мере, пример в демонстрации wxPython этого не делает.

person Mike Driscoll    schedule 19.07.2011