dimank26 Posted January 18, 2020 Share Posted January 18, 2020 Что делать? В чём ошибка может быть? @ Quote Link to comment Short link Share on other sites More sharing options...
ktulho Posted January 18, 2020 Share Posted January 18, 2020 Импортируете MessengerEntry, а вызываете messenger. @ Quote Link to comment Short link Share on other sites More sharing options...
dimank26 Posted January 18, 2020 Author Share Posted January 18, 2020 21 минуту назад, ktulho сказал: Импортируете MessengerEntry, а вызываете messenger. from messenger import MessengerEntry Ну я же импортировал @ Quote Link to comment Short link Share on other sites More sharing options...
ktulho Posted January 18, 2020 Share Posted January 18, 2020 12 минут назад, dimank26 сказал: Ну я же импортировал Что импортировали? @ Quote Link to comment Short link Share on other sites More sharing options...
dimank26 Posted January 18, 2020 Author Share Posted January 18, 2020 4 минуты назад, ktulho сказал: Что импортировали? MessengerEntry 15 минут назад, ktulho сказал: Что импортировали? Код: import BigWorld from gui import SystemMessages from messenger import MessengerEntry from constants import PREBATTLE_TYPE from messenger.m_constants import PROTO_TYPE message = u'Hello World' class CommonChannelCriteria(object): def filter(self, channel): return channel.getName() == messenger.m_constants.LAZY_CHANNEL.COMMON ctrl = messenger.MessengerEntry.g_instance.gui.channelsCtrl.getControllerByCriteria(CommonChannelCriteria()) ctrl.sendMessage(message.encode('utf-8')) @ Quote Link to comment Short link Share on other sites More sharing options...
ktulho Posted January 18, 2020 Share Posted January 18, 2020 28 минут назад, dimank26 сказал: MessengerEntry Правильно. А в коде обращаетесь к объекту messenger, которого нет: ctrl = messenger.MessengerEntry.g_instance.gui.channelsCtrl.getControllerByCriteria(CommonChannelCriteria()) Попробуйте: ctrl = MessengerEntry.g_instance.gui.channelsCtrl.getControllerByCriteria(CommonChannelCriteria()) PS Хотя посмотрел еще раз код. Попробуйте так: from gui import SystemMessages from messenger import MessengerEntry from constants import PREBATTLE_TYPE from messenger.m_constants import PROTO_TYPE, LAZY_CHANNEL message = u'Hello World' class CommonChannelCriteria(object): def filter(self, channel): return channel.getName() == LAZY_CHANNEL.COMMON ctrl = MessengerEntry.g_instance.gui.channelsCtrl.getControllerByCriteria(CommonChannelCriteria()) ctrl.sendMessage(message.encode('utf-8')) @ Quote Link to comment Short link Share on other sites More sharing options...
dimank26 Posted January 18, 2020 Author Share Posted January 18, 2020 10 минут назад, ktulho сказал: Правильно. А в коде обращаетесь к объекту messenger, которого нет: ctrl = messenger.MessengerEntry.g_instance.gui.channelsCtrl.getControllerByCriteria(CommonChannelCriteria()) Попробуйте: ctrl = MessengerEntry.g_instance.gui.channelsCtrl.getControllerByCriteria(CommonChannelCriteria()) Тогда перекидывает ошибку ( NameError: global name 'messenger' is not defined ) На данную строку: return channel.getName() == messenger.m_constants.LAZY_CHANNEL.COMMON Пробовал заменить на: return channel.getName() == MessengerEntry.m_constants.LAZY_CHANNEL.COMMON Тогда выдаёт ошибку ( AttributeError: 'module' object has no attribute 'm_constants' ) @ Quote Link to comment Short link Share on other sites More sharing options...
ktulho Posted January 18, 2020 Share Posted January 18, 2020 9 минут назад, dimank26 сказал: На данную строку: Смотрите выше, я поправил. @ Quote Link to comment Short link Share on other sites More sharing options...
dimank26 Posted January 18, 2020 Author Share Posted January 18, 2020 3 минуты назад, ktulho сказал: Смотрите выше, я поправил. Оооо, работает, спасибо большое, но русские символы так и не хотят почему-то) @ Quote Link to comment Short link Share on other sites More sharing options...
ktulho Posted January 18, 2020 Share Posted January 18, 2020 @dimank26 попробуйте так: import locale from gui import SystemMessages from messenger import MessengerEntry from constants import PREBATTLE_TYPE from messenger.m_constants import PROTO_TYPE, LAZY_CHANNEL message = u'Hello World' class CommonChannelCriteria(object): def filter(self, channel): return channel.getName() == LAZY_CHANNEL.COMMON ctrl = MessengerEntry.g_instance.gui.channelsCtrl.getControllerByCriteria(CommonChannelCriteria()) ctrl.sendMessage(message.decode(locale.getdefaultlocale()[1]).encode('utf-8')) @ Quote Link to comment Short link Share on other sites More sharing options...
dimank26 Posted January 18, 2020 Author Share Posted January 18, 2020 2 минуты назад, ktulho сказал: @dimank26 попробуйте так: import locale from gui import SystemMessages from messenger import MessengerEntry from constants import PREBATTLE_TYPE from messenger.m_constants import PROTO_TYPE, LAZY_CHANNEL message = u'Hello World' class CommonChannelCriteria(object): def filter(self, channel): return channel.getName() == LAZY_CHANNEL.COMMON ctrl = MessengerEntry.g_instance.gui.channelsCtrl.getControllerByCriteria(CommonChannelCriteria()) ctrl.sendMessage(message.decode(locale.getdefaultlocale()[1]).encode('utf-8')) @ Quote Link to comment Short link Share on other sites More sharing options...
ktulho Posted January 18, 2020 Share Posted January 18, 2020 Еще такой вариант: ctrl.sendMessage(message.decode('ascii').encode('utf-8')) @ Quote Link to comment Short link Share on other sites More sharing options...
dimank26 Posted January 18, 2020 Author Share Posted January 18, 2020 4 минуты назад, ktulho сказал: Еще такой вариант: ctrl.sendMessage(message.decode('ascii').encode('utf-8')) Пробовал кстати этот вариант, может передавать в unicode как-то? просто если отправлять уже в unicode, то символы русские @ Quote Link to comment Short link Share on other sites More sharing options...
ktulho Posted January 18, 2020 Share Posted January 18, 2020 from gui import SystemMessages from messenger import MessengerEntry from constants import PREBATTLE_TYPE from messenger.m_constants import PROTO_TYPE, LAZY_CHANNEL message = 'Привет мир' class CommonChannelCriteria(object): def filter(self, channel): return channel.getName() == LAZY_CHANNEL.COMMON ctrl = MessengerEntry.g_instance.gui.channelsCtrl.getControllerByCriteria(CommonChannelCriteria()) ctrl.sendMessage(message) @ Quote Link to comment Short link Share on other sites More sharing options...
dimank26 Posted January 18, 2020 Author Share Posted January 18, 2020 11 минут назад, ktulho сказал: from gui import SystemMessages from messenger import MessengerEntry from constants import PREBATTLE_TYPE from messenger.m_constants import PROTO_TYPE, LAZY_CHANNEL message = 'Привет мир' class CommonChannelCriteria(object): def filter(self, channel): return channel.getName() == LAZY_CHANNEL.COMMON ctrl = MessengerEntry.g_instance.gui.channelsCtrl.getControllerByCriteria(CommonChannelCriteria()) ctrl.sendMessage(message) @ Quote Link to comment Short link Share on other sites More sharing options...
ktulho Posted January 18, 2020 Share Posted January 18, 2020 @ Quote Link to comment Short link Share on other sites More sharing options...
dimank26 Posted January 18, 2020 Author Share Posted January 18, 2020 5 минут назад, ktulho сказал: Что-то явно у меня не так видимо) @ Quote Link to comment Short link Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.