#python #wxpython
#python #wxpython
Вопрос:
У меня есть фрейм, который я использую в качестве основной формы (мэйнфрейма), он наследуется от mainFrameBase, который наследуется от wxFrame.
У него есть системная кнопка «закрыть». При нажатии приложение завершает работу. Все очень по моему вкусу.
Я наследую другой фрейм из mainFrameBase (progScreen). При нажатии кнопки отображается progScreen. Когда я нажимаю кнопку закрытия системы, форма не закрывается.
Чего я хочу добиться с помощью этой настройки, так это того, что вы можете нажать кнопку на главном фрейме, и будет показан немного другой вид основного фрейма, позволяющий пользователю «прогамировать» определенные кнопки.
Кстати, я использую wxFormBuilder (отличная программа) для создания экранов.
Ответ №1:
Что я хотел бы сделать, так это создать две панели с нужными вам элементами управления, одну для обычного экрана и одну для экрана программирования. Затем, когда вы хотите переключиться, вы скрываете одну панель и показываете другую. Таким образом, оба экрана содержатся в одном фрейме, который при закрытии завершает работу программы. На самом деле у меня есть учебное пособие, похожее на это здесь:
http://www.blog.pythonlibrary.org/2010/06/16/wxpython-how-to-switch-between-panels/
Надеюсь, это поможет!
Комментарии:
1. Я делаю это для других целей, но то, чего я хотел добиться, — это возможность повторного использования. У меня есть этот экран, зачем изобретать weel.
2. Что вы имеете в виду под этим? Если вы поместите панели в их собственные классы, вы можете повторно использовать их в любом фрейме или диалоговом окне, которые вы хотите.
3. Ага, вот что ты имеешь в виду. Может быть, это хорошая идея. Конечный результат будет таким же. Я попробую. Спасибо
4. В итоге я создал создать панели, как было предложено, а затем во время выполнения добавить их в основную форму. При нажатии определенной кнопки я открываю диалоговое окно и добавляю туда панели. Некоторые фрагменты кода я перенес во вспомогательные функции в отдельном скрипте. Теперь я могу повторно использовать много кода! Спасибо за предложение