Как изменить изображения в питоне
Я работаю над xbmc, чтобы запустить четыре изображения со своим собственным скриптом Python. Я настроил управление с клавиатуры с помощью keymap.xml, так как я хочу изменить изображения в python, когда нажимаю на левую стрелку на клавиатуре.
Я использую XML-файл для хранения пути парсера для изображений.
Вот XML-файл, который я использую:
<?xml version="1.0" encoding="utf-8"?>
<window type="dialog">
<allowoverlay>no</allowoverlay>
<coordinates>
<system>1</system>
<posx>0</posx>
<posy>0</posy>
</coordinates>
<controls>
<control type="image" id="1">
<posx>0</posx>
<posy>0</posy>
<width>1280</width>
<height>720</height>
<texture>background-defeat.png</texture>
<animation effect="fade" start="0" end="100" time="6500">WindowOpen</animation>
</control>
<control type="image" id="2">
<description>Image 2</description>
<posx>307</posx>
<posy>7</posy>
<width>154</width>
<height>95</height>
<visible>true</visible>
<texture>Image 2.png</texture>
<animation effect="fade" start="0" end="100" time="1500">WindowOpen</animation>
</control>
<control type="image" id="3">
<description>Image 3</description>
<posx>460</posx>
<posy>7</posy>
<width>188</width>
<height>95</height>
<visible>true</visible>
<texture>Image 3.png</texture>
<animation effect="fade" start="0" end="100" time="1500">WindowOpen</animation>
</control>
<control type="image" id="4">
<description>Image 4</description>
<posx>648.5</posx>
<posy>7</posy>
<width>165</width>
<height>95</height>
<visible>true</visible>
<texture>Image 4.png</texture>
<animation effect="fade" start="0" end="100" time="1500">WindowOpen</animation>
</control>
</controls>
</window>
Вот скрипт Python:
import xbmc
import xbmcgui
import os
#get actioncodes from keymap.xml
ACTION_MOVE_LEFT = 1
ACTION_MOVE_RIGHT = 2
ACTION_MOVE_UP = 3
ACTION_MOVE_DOWN = 4
ACTION_PREVIOUS_MENU = 10
ACTION_BACKSPACE = 110
class MyClass(xbmcgui.WindowXML):
def onAction(self, action):
if action == ACTION_PREVIOUS_MENU:
self.close()
if action == ACTION_BACKSPACE:
self.close()
if action == ACTION_MOVE_LEFT:
if os.path.exists(xbmc.translatePath("special://home/addons/script.tvguide/resources/skins/Default/media/Image 2.png")):
self.strAction = xbmcgui.ControlLabel(300, 200, 600, 200, '', 'font14', '0xFF00FF00')
self.addControl(self.strAction)
self.strAction.setLabel('you are pressing on the left button. Now let change the image')
Когда я нажимаю кнопку со стрелкой влево на клавиатуре, я могу получить выражение if в качестве изображения Image 2.png
существует Теперь я хотел бы изменить изображения, которые я хочу изменить с Image 2.png на Image 3.png.
Кто-нибудь знает, как я мог это сделать?
1 ответ
Вам нужно получить ImageControl
в качестве управляющего объекта (по идентификатору, определенному в вашем XML) и использовать setImage()
способ изменить его текстуру.
Пример кода:
if action == ACTION_MOVE_LEFT:
image_control = self.getControl(4)
image_control.setImage("special://home/addons/script.tvguide/resources/skins/Default/media/Image 2.png")
Вы действительно должны прочитать Документы xbmcgui: http://mirrors.xbmc.org/docs/python-docs/12.2-frodo/xbmcgui.html