Сначало код:
class PluginClass:
def __ListDir__(self):
self.PluginsDir=u'C:\\Plugins\\'
self.PluginsList=
AllFiles=os.listdir(self.PluginsDir) # Получаем все файлы из директории с плагинами
Count=0
while Count!=len(AllFiles): # Перебираем все найденные файлы
Count+=1
if os.path.isfile(os.path.join(self.PluginsDir,AllFiles))==1: # Если это файл, а не директория
if os.path.splitext(AllFiles)==u'.py': # и имеет расширение .py
self.PluginsList.append(AllFiles) # то заносим в список плагинов
def GetPluginFromList(self):
self.__ListDir__() # Ищем плагины
if len(self.PluginsList)==0: # Если плагинов не нашли
appuifw(u'No one plugin avialable.',u'error') # ругаемся
return # и выходим
else: # Если нашли плагины
self.PluginsList=unicode(self.PluginsList)
global ActivePlugin
print(u'Debug 1') # ВЫПОЛНЯЕТСЯ
ActivePlugin=appuifw.selection_list(self.PluginsList) # ОШИБКА ЗДЕСЬ, НО РУГАЕТСЯ НА ВЫЗОВ GetPluginFromList()
print(u'Debug 2') # СООТВЕТСТВЕННО НЕ ВЫПОЛНЯЕТСЯ
def RunPlugin(self,PluginName):
appuifw.note(u'This function is not active yet')
……
class MenuClass:
……
def __SelectPlugin__(self):
global Running
global ActivePlugin
OldActivePlugin=ActivePlugin # Сохраняем прежний выбор
if Running==True: # Если сервер запущен
self.Plugin.GetPluginFromList() # Выбираем плагин
if ActivePlugin==u'': # Если не выбрали
if OldActivePlugin!=u'': # Но есть прежний выбор
ActivePlugin=OldActivePlugin # Восстанавливаем
else: # Если плагин был выбран
self.Server.Stop() # Перезапустим сервер
self.Server.Start()
else: # Если сервер не запущен
self.Plugin.GetPluginFromList() # Выбираем плагин РУГАЕТСЯ НА ЭТОТ ВЫЗОВ
if ActivePlugin==u'': # Если не выбрали
if OldActivePlugin!=u'': # Но есть прежний выбор
ActivePlugin=OldActivePlugin # Восстанавливаем
Не ругайте за большое количество лишнего кода, может быть ошибка в нем.
Проблема явно в selection_list - если посмотреть содержание self.PluginsList,
то там находится содержимое папки C:\\Plugins\\ в виде списка из юникод-строк
Но при передаче списка в appuifw.selection_list,
интерпретатор ругается на вызов GetPluginFromList(),
выводится первая дебаговая строка, вторая молчит
Ошибка явно глупая, но раскрыть ее не могу уже более 10 часов!
Symbian 8.1 Python 1.4.5