Hallo,
wollte mal fragen ob es eine "recht einfache Möglichkeit gibt einen Screen aus importierten Componenten zu erstellen?
In meinem Versuch z.b. für das Autotimer-Plugin benötige ich den Screen: "AutoTimerFAQ"
Leider habe ich für diesen Screen im Plugin selbst keinen eigenen Screen gefunden
Habe nun nach Stunden der suche und es experimentierens dies Weg gefunden, und weiß nicht ob er der richtige Ideale Weg ist.
Evtl. gibt es ja auch eine Leichteren, bzw, besseren weg?
zu meiner Vorgehensweise:
Das einzigste was ich nach langen suchen zum screen name="AutoTimerFAQ" gefunden habe ist in der
/usr/lib/enigma2/python/Plugins/Extensions/AutoTimer/AutoTimerOverview.py folgender Eintrag:
elif ret == "faq":
from Plugins.SystemPlugins.MPHelp import PluginHelp, XMLHelpReader
from Tools.Directories import resolveFilename, SCOPE_PLUGINS
reader = XMLHelpReader(resolveFilename(SCOPE_PLUGINS, "Extensions/AutoTimer/faq.xml"), translate=_)
autotimerFaq = PluginHelp(*reader)
autotimerFaq.open(self.session)
Also habe ich mir erst einmal den Eintrag (SCOPE_PLUGINS, "Extensions/AutoTimer/faq.xml") angeschaut.
Welcher den FAQ-Text beinhaltet, aber keinen direkten Screen und auch keinen Hinweis wie ich diesen EIntrag einbinden kann....
Dann habe ich mir als zweites die oberste Zeile vorgenommen und diese entsprechenden .py Dateien genauer betrachtet:
- from Plugins.SystemPlugins.MPHelp import PluginHelp, XMLHelpReader
in der /usr/lib/enigma2/python/Plugins/SystemPlugins/MPHelp/ bin ich dann fündig geworden,
und habe folgenden möglichen Screen gefunden:
class MPHelp(Screen):
skin = """
<screen name="MPHelp" title="MPHelp" position="center,120" size="820,520">
<ePixmap pixmap="skin_default/buttons/red.png" position="10,5" size="200,40" alphatest="on"/>
<ePixmap pixmap="skin_default/buttons/green.png" position="210,5" size="200,40" alphatest="on"/>
<ePixmap pixmap="skin_default/buttons/yellow.png" position="410,5" size="200,40" alphatest="on"/>
<ePixmap pixmap="skin_default/buttons/blue.png" position="610,5" size="200,40" alphatest="on"/>
<widget source="key_red" render="Label" position="10,5" size="200,40" zPosition="1" font="Regular;20" halign="center" valign="center" backgroundColor="#9f1313" transparent="1" shadowColor="black" shadowOffset="-2,-2"/>
<widget source="key_green" render="Label" position="210,5" size="200,40" zPosition="1" font="Regular;20" halign="center" valign="center" backgroundColor="#1f771f" transparent="1" shadowColor="black" shadowOffset="-2,-2"/>
<widget source="key_yellow" render="Label" position="410,5" size="200,40" zPosition="1" font="Regular;20" halign="center" valign="center" backgroundColor="#a08500" transparent="1" shadowColor="black" shadowOffset="-2,-2"/>
<widget source="key_blue" render="Label" position="610,5" size="200,40" zPosition="1" font="Regular;20" halign="center" valign="center" backgroundColor="#18188b" transparent="1" shadowColor="black" shadowOffset="-2,-2"/>
<eLabel position="10,50" size="800,1" backgroundColor="grey"/>
<widget render="Label" source="title" position="10,60" size="800,30" font="Regular;26"/>
<widget name="detailtext" position="10,120" size="800,390" font="Regular;21"/>
</screen>
Alles anzeigen
Diesen Screen habe ich mir dann als Vorlage genommen um diesen Screen dann für den screen name="AutoTimerFAQ" umzubauen.
<!-- Autotimer / FAQ (plugin-extention) -->
<screen name="AutoTimerFAQ" position="center,195" size="1280,720" title="AutoTimerFAQ">
<!-- Buttons & Keycode -->
<ePixmap pixmap="skin_default/buttons/red.png" position="10,5" size="300,55" alphatest="on"/>
<ePixmap pixmap="skin_default/buttons/green.png" position="310,5" size="300,55" alphatest="on"/>
<ePixmap pixmap="skin_default/buttons/yellow.png" position="610,5" size="300,55" alphatest="on"/>
<ePixmap pixmap="skin_default/buttons/blue.png" position="910,5" size="300,55" alphatest="on"/>
<widget source="key_red" render="Label" position="10,5" size="300,55" zPosition="1" font="Regular;29" halign="center" valign="center" backgroundColor="#9f1313" transparent="1" shadowColor="black" shadowOffset="-2,-2"/>
<widget source="key_green" render="Label" position="310,5" size="300,55" zPosition="1" font="Regular;29" halign="center" valign="center" backgroundColor="#1f771f" transparent="1" shadowColor="black" shadowOffset="-2,-2"/>
<widget source="key_yellow" render="Label" position="610,5" size="300,55" zPosition="1" font="Regular;29" halign="center" valign="center" backgroundColor="#a08500" transparent="1" shadowColor="black" shadowOffset="-2,-2"/>
<widget source="key_blue" render="Label" position="910,5" size="300,55" zPosition="1" font="Regular;29" halign="center" valign="center" backgroundColor="#18188b" transparent="1" shadowColor="black" shadowOffset="-2,-2"/>
<!-- Line -->
<eLabel position="10,65" size="1200,2" backgroundColor="grey" />
<!-- Detail Text -->
<widget name="detailtext" position="10,75" size="1240,630" font="Regular;30"/>
</screen>
Alles anzeigen
Hatte zwar schon vorher versucht den Screen selbst zu gestalten aber leider knallte mir immer das Enigam2 weg, der Entscheidende Eintrag den ich benötigte war dies:
<!-- Detail Text -->
<widget name="detailtext" position="10,75" size="1240,630" font="Regular;30"/>
Evtl.kann dieses Beitrag von mir den einen oder anderen Helfen, wenn er mal auf ein gleiches öder ähnliches Problem stößt.
Ob diese Vorgehensweise natürlich die richtige isr, das weiß ich nicht, aber evtl. kann ja ein "erfahrener" Skinner oder Phyton bzw. XML programmierer dazu mehr aussagen?
Zumindest hatte ich bis zu diesem Lösungsweg etliche Stunden der Suche und des Experimentieren benötigt,
und will es einem anderen Unerfahrenen, wie Mir hiermit einiges an Zeit ersparen