2017-02-21 4 views
0

Я программирую на wxpython, и я пытаюсь использовать модель mvc. Но я застрял с потерянным контроллером :) Я объясню.wxpython + mvc delete controller

A есть панель, которая вызывает контроллер. Я кое-что делаю. то я уничтожу свой контроллер и панель. Хорошо, я стараюсь.

del self.tempMApanel.controller 
self.tempMApanel.Destroy() 

То, что я знаю наверняка, это то, что контроллер не связан больше с панелью, потому что, если я печать 'контроллер я получаю сообщение об ошибке, что говорит главный объект не имеет контроллера атрибутов:

print "self.tempMApanel.controller: ",self.tempMApanel.controller #'Main' object has no attribute 'controller' 

В какой-то момент я воссоздаю панель с новым контроллером. Но когда я отправляю сообщение (с сообщением pub.Sendmessage), чтобы что-то сделать в контроллере, сообщение поднимается старым контроллером, который не подключен к панели, и программа жалуется (из-за курса :))

SO мой конкретный вопрос: можете ли вы «убить» контроллер и возможно ли иметь «потерянный», «единственный», «летающий» контроллер?

Прошлое 2 дня программирования было поднято до другого сложного. Все виртуальные соединения ... иногда трудно отслеживать, и их трудно объяснить и попросить о помощи. Поэтому я надеюсь, что ясно, что я пытаюсь сказать.

tx заранее, и я надеюсь, что есть некоторые гении, которые могут мне помочь!

ответ

0

Мой день так хорош! Я говорил о своей «потерянной» проблеме контроллера с нашим IT-парнем, и он сказал, что вы используете подписчика, может быть, ваша ссылка на ваш контроллер все еще там где-то. И действительно, контроллер был добавлен в список, поэтому мне пришлось удалить контроллер из этого списка, а затем я мог удалить свое представление.

Я так рад! Последние 3 дня в моей программе было так много проблем, и я решил их всех, кроме этого. Но теперь я могу двигаться дальше.

Так что я советую всегда искать ссылки, если вы видите эту проблему.