Quantcast
Channel: Kodinerds.net - Deutschsprachiges Forum zum Kodi Entertainment Center
Viewing all articles
Browse latest Browse all 87137

Probleme mit der DialogSlider.xml

$
0
0
Hallo Leutz,

Für das Fritz SmartHome versuche ich einen Slider für das Einstellen der Temperatur eines Thermostaten zu benutzen. Ich habe mir gedacht, nimmste die DialogSlider.xml, da die ein Standardwindow in Kodi ist (sliderdialog, 10145). Leider gibt es einige Probleme. Das Window reagiert weder auf diverse Events, noch lassen sich die Controls vor dem Aufrufen des Window mit show() befüllen. Hier gibt es dann eine Exception (non-existent Control with id xx). Rufe ich vor dem Befüllen show() auf, wird mir zunächst ein 'leeres' Dialogfenster angezeigt, die Controls sind aber da. Allerdings werden beim Setzen der Controls diese nicht aktualisiert - erst beim nächsten Aufruf ist alles in Butter.

Eine Anfrage habe ich bereits im kodi.tv gestellt, dort ist auch der Python-Code zu finden. Ich stelle ihn hier auch nochmal rein. Die DialogSlider.xml stellt Controls mit den folgenden IDs bereit:

  • id=10: Label (Header)
  • id=11: the Slider itself
  • id=12: Label, z.B. für numerische Darstellung des Sliderwertes


EDIT: Hier der Link nach kodi.tv

Python-Quellcode

  1. class Slider():
  2. device = None
  3. DialogSlider = xbmcgui.Window(10145)
  4. def __init__(self):
  5. self.DialogSlider.show()
  6. try:
  7. self._header = self.DialogSlider.getControl(10)
  8. self._value = self.DialogSlider.getControl(12)
  9. self._slider = self.DialogSlider.getControl(11)
  10. except RuntimeError:
  11. pass
  12. def update(self):
  13. self._header.setLabel(device.name)
  14. self._value.setLabel(device.temp[0])
  15. self._slider.setPercent(device.temp[1])
  16. def onClick(self, cid):
  17. t.writeLog('clicked on ID %s' % (cid)) # t.writeLog is a special func to write in kodi.log
  18. def onControl(self, cid):
  19. t.writeLog('clicked on ID %s' % (cid)) # t.writeLog is a special func to write in kodi.log
  20. def onInit(self):
  21. t.writeLog('Window Init') # t.writeLog is a special func to write in kodi.log
  22. def onAction(self, action):
  23. t.writeLog(action.getId) # t.writeLog is a special func to write in kodi.log
  24. slider = Slider()
  25. slider.device = device # thermostat object with formatted properties
  26. slider.update()
Alles anzeigen

Die Merkwürdigkeiten:


  • Controls lassen sich nicht ohne weiteres befüllen
  • Eventhandler (onClick, onControl, onAction usw.) werden nicht angesprochen bzw. ausgelöst


Any Hints?

Viewing all articles
Browse latest Browse all 87137


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>