reload list/Screen

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • reload list/Screen

      Hallo Leute,

      ich mal wieder ...

      wie kann ich nach dem ich was ausgelöst habe (z.B. com_one) den Screen neu laden um den Status (Zeile 21 und 22) zu aktualisieren?
      Eigentlich muss doch nur __init__ neu aufgerufen werden, funtz aber nicht.



      Python-Quellcode

      1. # -*- coding: iso-8859-1 -*-
      2. from Screens.Screen import Screen
      3. from Screens.Console import Console
      4. from Components.MenuList import MenuList
      5. from Components.ActionMap import ActionMap
      6. from Components.ActionMap import NumberActionMap
      7. from Plugins.Plugin import PluginDescriptor
      8. import os
      9. import function
      10. ############################################################################
      11. class MyShPrombt(Screen):
      12. skin = """
      13. <screen position="100,150" size="460,700" title="Subwoofer" >
      14. <widget name="myMenu" itemHeight="45" font="Regular;30" position="10,10" size="460,770" scrollbarMode="showOnDemand" />
      15. </screen>"""
      16. def __init__(self, session, args = 0):
      17. self.session = session
      18. links = function.main(10049)
      19. rechts = function.main(10048)
      20. list = []
      21. list.append((_("STATUS "),))
      22. if links == "true":
      23. list.append((_("linker Subwooofer ist an"),))
      24. elif links == "false":
      25. list.append((_("linker Subwooofer ist aus"),))
      26. if rechts == "true":
      27. list.append((_("rechter Subwooofer ist an"),))
      28. elif rechts == "false":
      29. list.append((_("rechter Subwooofer ist aus"),))
      30. list.append((_(" "),))
      31. list.append((_("1 beide an 7.2"), "com_one"))
      32. list.append((_("2 beide aus 7.2"), "com_two"))
      33. list.append((_("3 links an 7.1"), "com_three"))
      34. list.append((_("4 links aus 7.1"), "com_four"))
      35. list.append((_("5 rechst an 7.1"), "com_five"))
      36. list.append((_("6 rechts aus 7.1"), "com_six"))
      37. list.append((_("Exit"), "exit"))
      38. Screen.__init__(self, session)
      39. self["myMenu"] = MenuList(list)
      40. self["myActionMap"] = ActionMap(["SetupActions"],
      41. {
      42. "ok": self.go,
      43. "cancel": self.cancel
      44. }, -1)
      45. self["numberActions"] = NumberActionMap(["NumberActions"],
      46. {
      47. "0": self.keyNumberGlobal,
      48. "1": self.keyNumberGlobal,
      49. "2": self.keyNumberGlobal,
      50. "3": self.keyNumberGlobal,
      51. "4": self.keyNumberGlobal,
      52. "5": self.keyNumberGlobal,
      53. "6": self.keyNumberGlobal,
      54. "7": self.keyNumberGlobal,
      55. "8": self.keyNumberGlobal,
      56. "9": self.keyNumberGlobal,
      57. }, -1)
      58. def go(self):
      59. returnValue = self["myMenu"].l.getCurrentSelection()[1]
      60. print "\n[MyShPrombt] returnValue: " + returnValue + "\n"
      61. if returnValue is not None:
      62. if returnValue is "com_one":
      63. os.system("/usr/script/7.2_an.sh &")
      64. elif returnValue is "com_two":
      65. os.system("/usr/script/7.2_aus.sh &")
      66. elif returnValue is "com_three":
      67. os.system("/usr/script/7.1_links_an.sh &")
      68. elif returnValue is "com_four":
      69. os.system("/usr/script/7.1_links_aus.sh &")
      70. elif returnValue is "com_five":
      71. os.system("/usr/script/7.1_rechts_an.sh &")
      72. elif returnValue is "com_six":
      73. os.system("/usr/script/7.1_rechts_aus.sh &")
      74. else:
      75. print "\n[MyShPrombt] cancel_else\n"
      76. self.close(None)
      77. def keyNumberGlobal(self, number):
      78. if number == 1:
      79. os.system("/usr/script/7.2_an.sh &")
      80. elif number == 2:
      81. os.system("/usr/script/7.2_aus.sh &")
      82. elif number == 3:
      83. os.system("/usr/script/7.1_links_an.sh &")
      84. elif number == 4:
      85. os.system("/usr/script/7.1_links_aus.sh &")
      86. elif number == 5:
      87. os.system("/usr/script/7.1_rechts_an.sh &")
      88. elif number == 6:
      89. os.system("/usr/script/7.1_rechts_aus.sh &")
      90. def prombt(self, com):
      91. self.session.open(Console,_("start shell com: %s") % (com), ["%s" % com])
      92. def cancel(self):
      93. print "\n[MyShPrombt] cancel\n"
      94. self.close(None)
      95. ###########################################################################
      96. def main(session, **kwargs):
      97. print "\n[MyShPrombt] start\n"
      98. session.open(MyShPrombt)
      99. ###########################################################################
      100. def Plugins(**kwargs):
      101. return PluginDescriptor(
      102. name="0_STATUS",
      103. description="0_STATUS",
      104. where = PluginDescriptor.WHERE_PLUGINMENU,
      105. icon="plugin.png",
      106. fnc=main)
      Alles anzeigen
    • ok ich löse das jetzt mit dem erneuten öffnen des PlugIn'ss und schließe das alte.
      Ich nicht die beste Lösung, hat jemand einen besser Idee? Lösung oder Vorschläge?

      Python-Quellcode

      1. # -*- coding: iso-8859-1 -*-
      2. from Screens.Screen import Screen
      3. from Screens.Console import Console
      4. from Components.MenuList import MenuList
      5. from Components.ActionMap import ActionMap
      6. from Plugins.Plugin import PluginDescriptor
      7. import os
      8. import function
      9. import time
      10. ############################################################################
      11. class MyShPrombt(Screen):
      12. skin = """
      13. <screen position="100,150" size="460,700" title="TEST" >
      14. <widget name="myMenu" itemHeight="45" font="Regular;30" position="10,10" size="460,770" scrollbarMode="showOnDemand" />
      15. </screen>"""
      16. def __init__(self, session, args = 0):
      17. self.session = session
      18. EHeizung = function.main(10050)
      19. TimosBadlampe = function.main(10042)
      20. TimosSpiegel = function.main(10043)
      21. Spielzimmer = function.main(10046)
      22. Schlafzimmer = function.main(10045)
      23. Monitore = function.main(10047)
      24. Dachgeschoss = function.main(10044)
      25. list = []
      26. # list.append((_("STATUS "),))
      27. if EHeizung == "true":
      28. list.append((_("E-Heizung Ein"), "10050 OFF"))
      29. elif EHeizung == "false":
      30. list.append((_("E-Heizung Aus"), "10050 ON"))
      31. if TimosBadlampe == "true":
      32. list.append((_("Badlampe Ein"), "10042 OFF"))
      33. elif TimosBadlampe == "false":
      34. list.append((_("Badlampe Aus"),"10042 ON"))
      35. if TimosSpiegel == "true":
      36. list.append((_("Spiegellampe Ein"), "10043 OFF"))
      37. elif TimosSpiegel == "false":
      38. list.append((_("Spiegellampe Aus"),"10043 ON"))
      39. if Spielzimmer == "true":
      40. list.append((_("Spielzimmer Ein"), "10046 OFF"))
      41. elif Spielzimmer == "false":
      42. list.append((_("Spielzimmer Aus"),"10046 ON"))
      43. if Schlafzimmer == "true":
      44. list.append((_("Schlafzimmer Ein"), "10045 OFF"))
      45. elif Schlafzimmer == "false":
      46. list.append((_("Schlafzimmer Aus"),"100445 ON"))
      47. if Monitore == "true":
      48. list.append((_("Monitore Ein"), "10047 OFF"))
      49. elif Monitore == "false":
      50. list.append((_("Monitore Aus"),"10047 ON"))
      51. if Dachgeschoss == "true":
      52. list.append((_("Dachgeschoss Ein"), "10044 OFF"))
      53. elif Dachgeschoss == "false":
      54. list.append((_("Dachgeschoss Aus"),"10044 ON"))
      55. list.append((_("Exit"), "exit"))
      56. Screen.__init__(self, session)
      57. self["myMenu"] = MenuList(list)
      58. self["myActionMap"] = ActionMap(["SetupActions"],
      59. {
      60. "ok": self.go,
      61. "cancel": self.cancel
      62. }, -1)
      63. def go(self):
      64. returnValue = self["myMenu"].l.getCurrentSelection()[1]
      65. print "\n[MyShPrombt] returnValue: " + returnValue + "\n"
      66. if returnValue is not None:
      67. os.system("/usr/script/homepilot.sh "+returnValue+"")
      68. time.sleep(1)
      69. self.session.open(MyShPrombt)
      70. self.close(None)
      71. def cancel(self):
      72. print "\n[MyShPrombt] cancel\n"
      73. self.close(None)
      74. ###########################################################################
      75. def main(session, **kwargs):
      76. print "\n[MyShPrombt] start\n"
      77. session.open(MyShPrombt)
      78. ###########################################################################
      79. def Plugins(**kwargs):
      80. return PluginDescriptor(
      81. name="TEST",
      82. description="TEST",
      83. where = PluginDescriptor.WHERE_PLUGINMENU,
      84. icon="plugin.png",
      85. fnc=main)
      Alles anzeigen
    • Lagere die Erstellung der Liste aus der __init__ in eine eigene def blabla(self) in der Klasse aus, darin kannst du die Liste mit self.l.setList(self.list) erstellen/aktualisieren.
      Bei Änderungen rufst du die def dann einfach wieder auf.
      Carpe diem!

      Skin: CerX FHD | Plugins: TMDb, BacksNcovers, FritzDect, AutoShredder, PluginMover | EPG: GraphMultiEPG | ... [Alle anzeigen]

      Vu+ Wiki
    • Bin leider mit python auf Kriegsfuss und bekomme die Liste nicht ausgelagert.

      Wie kann ich die Liste auslagern und mit self.l.setList(self.list) aufrufen?
    • so habe das jetzt mit dem auslagern hinbekommen, es fehlte halt nur ein .show am ende.

      self['myMenu'].l.setList(list)
      self['myMenu'].show()
    • Habe jetzt auch noch keyNumberGlobal eingebaut.
      Evtl. kann das jemand für seine Entwicklung gebrauchen...

      Python-Quellcode

      1. from Screens.Screen import Screen
      2. from Components.ActionMap import ActionMap
      3. from Components.ActionMap import NumberActionMap
      4. from Plugins.Plugin import PluginDescriptor
      5. from Components.MenuList import MenuList
      6. import os
      7. import function
      8. #import time
      9. class MyPrombt(Screen):
      10. skin = """
      11. <screen position="100,150" size="460,700" title="TEST" >
      12. <widget name="myMenu" itemHeight="45" font="Regular;30" position="10,10" size="460,770" scrollbarMode="showOnDemand" />
      13. </screen>"""
      14. def __init__(self, session):
      15. self.session = session
      16. Screen.__init__(self, session)
      17. self["myMenu"] = MenuList(list)
      18. self["myActionMap"] = ActionMap(["SetupActions"],
      19. {
      20. "ok": self.go,
      21. "cancel": self.cancel
      22. }, -1)
      23. self["numberActions"] = NumberActionMap(["NumberActions"],
      24. {
      25. "0": self.keyNumberGlobal,
      26. "1": self.keyNumberGlobal,
      27. "2": self.keyNumberGlobal,
      28. "3": self.keyNumberGlobal,
      29. "4": self.keyNumberGlobal,
      30. "5": self.keyNumberGlobal,
      31. "6": self.keyNumberGlobal,
      32. "7": self.keyNumberGlobal,
      33. "8": self.keyNumberGlobal,
      34. "9": self.keyNumberGlobal,
      35. }, -1)
      36. self.Menu()
      37. def Menu(self):
      38. EHeizung = function.main(10050)
      39. TimosBadlampe = function.main(10042)
      40. TimosSpiegel = function.main(10043)
      41. Spielzimmer = function.main(10046)
      42. Schlafzimmer = function.main(10045)
      43. Monitore = function.main(10047)
      44. Dachgeschoss = function.main(10044)
      45. list = []
      46. # list.append((_("STATUS "),))
      47. if EHeizung == "true":
      48. list.append((_("1. E-Heizung Ein"), "10050 OFF"))
      49. elif EHeizung == "false":
      50. list.append((_("1. E-Heizung Aus"), "10050 ON"))
      51. if TimosBadlampe == "true":
      52. list.append((_("2. Badlampe Ein"), "10042 OFF"))
      53. elif TimosBadlampe == "false":
      54. list.append((_("2. Badlampe Aus"),"10042 ON"))
      55. if TimosSpiegel == "true":
      56. list.append((_("3. Spiegellampe Ein"), "10043 OFF"))
      57. elif TimosSpiegel == "false":
      58. list.append((_("3. Spiegellampe Aus"),"10043 ON"))
      59. if Spielzimmer == "true":
      60. list.append((_("4. Spielzimmer Ein"), "10046 OFF"))
      61. elif Spielzimmer == "false":
      62. list.append((_("4. Spielzimmer Aus"),"10046 ON"))
      63. if Schlafzimmer == "true":
      64. list.append((_("5. Schlafzimmer Ein"), "10045 OFF"))
      65. elif Schlafzimmer == "false":
      66. list.append((_("5. Schlafzimmer Aus"),"100445 ON"))
      67. if Monitore == "true":
      68. list.append((_("6. Monitore Ein"), "10047 OFF"))
      69. elif Monitore == "false":
      70. list.append((_("6. Monitore Aus"),"10047 ON"))
      71. if Dachgeschoss == "true":
      72. list.append((_("7. Dachgeschoss Ein"), "10044 OFF"))
      73. elif Dachgeschoss == "false":
      74. list.append((_("7. Dachgeschoss Aus"),"10044 ON"))
      75. list.append((_("Exit"), "exit"))
      76. self['myMenu'].l.setList(list)
      77. self['myMenu'].show()
      78. def keyNumberGlobal(self, number):
      79. if number == 1:
      80. self["myMenu"].moveToIndex(0)
      81. # print "currentIndex:", self["myMenu"].l.getCurrentSelectionIndex()
      82. returnValue = self["myMenu"].l.getCurrentSelection()[1]
      83. # print "\n[MyShPrombt_KEY] returnValue: " + returnValue + "nummer: "str(number) +"\n"
      84. os.system("/usr/script/homepilot.sh "+returnValue+"")
      85. self.Menu()
      86. elif number == 2:
      87. self["myMenu"].moveToIndex(1)
      88. returnValue = self["myMenu"].l.getCurrentSelection()[1]
      89. os.system("/usr/script/homepilot.sh "+returnValue+"")
      90. self.Menu()
      91. elif number == 3:
      92. self["myMenu"].moveToIndex(2)
      93. returnValue = self["myMenu"].l.getCurrentSelection()[1]
      94. os.system("/usr/script/homepilot.sh "+returnValue+"")
      95. self.Menu()
      96. elif number == 4:
      97. self["myMenu"].moveToIndex(3)
      98. returnValue = self["myMenu"].l.getCurrentSelection()[1]
      99. os.system("/usr/script/homepilot.sh "+returnValue+"")
      100. self.Menu()
      101. elif number == 5:
      102. self["myMenu"].moveToIndex(4)
      103. returnValue = self["myMenu"].l.getCurrentSelection()[1]
      104. os.system("/usr/script/homepilot.sh "+returnValue+"")
      105. self.Menu()
      106. elif number == 6:
      107. self["myMenu"].moveToIndex(5)
      108. returnValue = self["myMenu"].l.getCurrentSelection()[1]
      109. os.system("/usr/script/homepilot.sh "+returnValue+"")
      110. self.Menu()
      111. elif number == 7:
      112. self["myMenu"].moveToIndex(6)
      113. returnValue = self["myMenu"].l.getCurrentSelection()[1]
      114. os.system("/usr/script/homepilot.sh "+returnValue+"")
      115. self.Menu()
      116. def go(self):
      117. returnValue = self["myMenu"].l.getCurrentSelection()[1]
      118. print "\n[MyShPrombt_GO] returnValue: " + returnValue + "\n"
      119. if returnValue is not None:
      120. os.system("/usr/script/homepilot.sh "+returnValue+"")
      121. self.Menu()
      122. def cancel(self):
      123. print "\n[MyShPrombt] cancel\n"
      124. self.close(None)
      125. ###########################################################################
      126. def main(session, **kwargs):
      127. print "\n[MyShPrombt] start\n"
      128. session.open(MyPrombt)
      129. ###########################################################################
      130. def Plugins(**kwargs):
      131. return PluginDescriptor(
      132. name="TEST",
      133. description="TEST Lampen",
      134. where = PluginDescriptor.WHERE_PLUGINMENU,
      135. icon="plugin.png",
      136. fnc=main)
      Alles anzeigen

      Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von PitderBeste ()