Как изменить изображения в питоне

Я работаю над 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

Другие вопросы по тегам