Evgen_irk
Фев. 12, 2009 04:55:27
Добрый день! Я недавно начал осваивать python и wxPython.
Создаю простую программу для тестирования знаний. Имеются 3 класса wx.Frame. На первом фрейме пользователь выбирает базу данных (shelve объект), вводит свои данные в поля text_ctrl_1 и text_ctrl_2. После этого он нажимает кнопку запуска теста и открывается второй фрейм, а первый закрывается. Во втором фрейме показываются вопрос из базы, варианты ответа на него и кнопка “дальше”. После прохождения всех вопросов открывается третье окно с результатами тестирования.
Возникла проблема как передать содержимое базы данных из первого фрейма во второй, данные пользователя и результаты теста в третий фрейм?
Попутно еще возник вопрос, можно ли изменять размер изображения динамически, т.е. если уменьшаем или увеличиваем размер фрейма?
PooH
Фев. 12, 2009 05:30:17
Evgen_irk
Возникла проблема как передать содержимое базы данных из первого фрейма во второй, данные пользователя и результаты теста в третий фрейм?
C Delphi пришли? ;) ничего не надо передавать, храните и обрабатывайте данные в одном объекте-модели, а во фреймах только отображайте и при создании фрейма давайте ему ссылку на модель.
dev65
Фев. 23, 2009 15:59:58
PooH, обычно делаю переменные, с которыми оперирую в нескольких фреймах, обработчиках событий и диалогах, свойствами класса Frame главного фрейма. Знаю, что это неправильно, т.к. логика приложения не должна быть привязана к объектам интерфейса. Подскажите, пожалуйста, как делать более правильно. Спасибо.
Evgen_irk
Апрель 2, 2009 03:16:16
PooH, спасибо за подсказку! Решил использовать один фрейм и в нем отображать разные панели с компоновкой.