Я довольно новичок в классе python и на самом деле не использовал их, поэтому, пожалуйста, не стесняйтесь указывать любые другие ошибки, кроме одного Я указываю.Проблема с классом python в Kodi, попытка написать пользовательский интерфейс для замены общего меню Kodi с помощью PYXBMCT
То, что я пытаюсь достичь, это новый UI in Kodi
с использованием модуля pyxbmct
. Я посылаю через список вещей (до сих пор еще предстоит решить, как я собираюсь разобраться раскол на следующий процесс с режимами, но это следующая задача)
Мои списки являются такие:
List = [['[COLOR darkgoldenrod][I]Search[/I][/COLOR]','',904,'http://icons.iconarchive.com/icons/icontexto/search/256/search-red-dark-icon.png','','',''],
['[COLOR darkgoldenrod][I]Menu Test[/I][/COLOR]','',905,'http://icons.iconarchive.com/icons/icontexto/search/256/search-red-dark-icon.png','','','']]
process.Window_Menu_Class(List)
Затем, очевидно, отправляется в Window_Menu_Class(), чтобы попытаться отобразить имя (имена) в списке, а также отобразить значок справа, но чередуясь в зависимости от того, где вы сосредоточены в Списке.
Код для Window_Menu_Class: -
import pyxbmct
List = []
class Window_Menu_Class():
fanart = 'http://www.wall321.com/thumbnails/detail/20121108/creepy%20video%20games%20castles%20diablo%20tristram%20creep%20diablo%20iii%20sanctuary%201920x1080%20wallpaper_www.wall321.com_92.jpg'
iconimage = ICON
power = 'http://herovision.x10host.com/fb_replays/power.png'
power_focus = 'http://herovision.x10host.com/fb_replays/power_focus.png'
text = '0xffffffff'
window_menu = pyxbmct.AddonDialogWindow('')
Background=pyxbmct.Image(fanart)
Icon=pyxbmct.Image('', aspectRatio=2)
button = pyxbmct.Button('', noFocusTexture=power,focusTexture=power_focus)
window_menu.setGeometry(1250, 650, 100, 50)
nameList = pyxbmct.addonwindow.List(_space=11,_itemTextYOffset=0,textColor=text)
window_menu.connect(button, window_menu.close)
window_menu.connect(pyxbmct.ACTION_NAV_BACK, window_menu.close)
window_menu.placeControl(Background, -5, 0, 110, 51)
window_menu.placeControl(nameList, 65, 1, 50, 20)
window_menu.placeControl(Icon, 30, 30, 60, 18)
name_list = []; url_list = []; mode_list = []; iconimage_list = []; fanart_list = []; desc_list = []; extra_list = []
def __init__(self,List):
self.Window_Menu(List)
def Window_Menu(self,List):
for item in List:
name = item[0]
url = item[1]
mode = item[2]
iconimage = item[3]
fanart = item[4]
desc = item[5]
extra = item[6]
if not name in self.name_list:
self.nameList.addItem(name);self.name_list.append(name);self.url_list.append(url);self.mode_list.append(mode);self.iconimage_list.append(iconimage);self.fanart_list.append(fanart);self.desc_list.append(desc);self.extra_list.append(extra)
self.create_window(name,url,mode,iconimage,fanart,desc,extra)
self.window_menu.doModal()
def create_window(self,name,url,mode,iconimage,fanart,desc,extra):
self.window_menu.setFocus(self.nameList)
self.window_menu.connectEventList(
[pyxbmct.ACTION_MOVE_DOWN,
pyxbmct.ACTION_MOVE_UP,
pyxbmct.ACTION_MOUSE_MOVE],
self.LIST_UPDATE(name,url,mode,iconimage,fanart,desc,extra))
def LIST_UPDATE(self,name,url,mode,iconimage,fanart,desc,extra):
if self.window_menu.getFocus() == self.nameList:
pos=self.nameList.getSelectedPosition()
Iconimg=self.iconimage_list[pos]
Fanart =self.fanart_list[pos]
self.Icon.setImage(Iconimg)
self.Background.setImage(Fanart)
, но я получаю ошибку -
Файл «C: \ Users * \ AppData \ Roaming \ Коди \ Addons \ plugin.video.sanctuary \ Lib \ process.py», строка 74, в LIST_UPDATE если self.window_menu.getFocus() == self.nameList: RuntimeError: несуществующее управление 0
Если я хэширование вне if self.window_menu.getFocus() == self.nameList:
то это работает, но это Безразлично изменить e в списке, когда вы переходите к следующему элементу, у меня есть рабочая версия, но все это сделано в одном .py-файле и вообще не нужно для класса, однако теперь я пытаюсь разделить код на другой .py файлы, которые мне нужны, чтобы создать класс, содержащий всю информацию и отправную точку. Надеюсь, это достаточно информации и ценят любые отзывы.