![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
necrozyablo |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 11.12.2008 Репутация: нет Всего: нет |
Вот решил прикрутить к своему GUI возможность посылать логи по xmpp ну и принимать удалённо команды.
Вот есть обычный рабочий код для работы с xmpp
Собственно этот код нормально работает если послать команду 'exit' то будет выполнятся if (command=='exit'): print 'exit' try: self.conn.disconnected() except: print 'errrrrr' self.exit=1 В принципе достаточно чисто self.exit и тогда всё выйдет, self.conn.disconnected() здесь так для избыточности. Но вот как только я всё это засовываю в QtCore.QThread - делаю class JabberBot(QtCore.QThread): Его я активирую как обычно через self.jb = JabberBot(self) self.jb.start() Собсвтенно всё работает команды принимаются, сообщения отправляются. Но проблема в том что когда я посылаю exit сессия не закрывается. Т.е. в окне контактов мой jabberbot продолжает висеть. При этом видно что в "def step_on(self)" перестаёт принтится " print 1", да и если сделать if self.jb.isRunning(): print 'qqqq' else: print 'zzzz' Мне выдаёт 'zzzz', что говорит о завершении работа этого thread. Но при этом контакт в листе активен и ведь даже self.conn.disconnected() не помогло... Но как только я завершаю работу программы мой бот сразу исчезает из листа. Даже не знаю куда копать чтобы понять в чём дело... |
|||
|
||||
mrDoctorWho |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 28.10.2011 Репутация: нет Всего: нет |
self.conn.disconnect()
Или отправка презенса unavailable в ростер. А лучше self.conn.RegisterDisconnectHandler(sys.exit). |
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Python: Разработка GUI | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |