[Erledigt] Probleme bei der Programmierung

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

  • [Erledigt] Probleme bei der Programmierung

    Hallo Leute,
    ich habe mir vor acht Jahren mal eine kleines Plugin programmiert ohne das ich Ahnung von Phyton und enigma hatte.
    Dieses Plugin zeigt mir automatisch die aktiven Timer.
    Als Abfallprodukt habe ich damals eine Uhr die ständig im Screen angezeigt wird mit eingebaut.
    Um genau diese Uhr geht es jetzt.

    Die Uhr sieht so aus:
    V4_all_20220828221209.jpg


    Aus bestimmten Gründen möchte ich nun, dass die Uhr auf Knopfdruck oder zwei oder drei, so aussieht:

    V4_all_20220828220944.jpg


    Zur Zeit löse ich das über einen auswählbaren skin. Das hat aber den Nachteil, dass ich Enigma neu starten muss.

    Ich würde das am Liebsten mit 3-4 Programmzeilen lösen, die diese Änderungen interaktiv vornehmen.
    Leider habe ich keinerlei Unterlagen und habe auch nach langer Recherche nichts gefunden, was mir dabei wirklich helfen kann.

    Das Einzige was ich bisher Programmtechnisch lösen konnte, ist die Größe der Uhr.

    z.B. Klein:
    self.instance.resize(eSize(100, 30))

    bzw. Groß:
    self.instance.resize(eSize(230, 80))


    Es fehlen mir also Funktionen um die Hintergrundfarbe zu ändern, also transparent oder eben nicht.
    Weiterhin wäre es schön den Font bzw. die Fontgröße zu ändern.

    Es fehlen mir also im Prinzip nur 2 Funktionen, wenn es sie denn gibt.

    Eine andere Möglichkeit wäre auch den Skin mit einer Funktion zu ändern.
    Aber auch dafür habe ich nichts gefunden.


    Ich hoffe, dass man mich verstanden hat und das mir jemand helfen kann.

    LG und Danke
  • So, ich habe zumindest für die Hintergrundfarbe eine Lösung gefunden.
    Die Änderung der Font-Size wäre zwar noch schön, aber nicht unbedingt notwendig.
    Das eine Clock jetzt mit rotem Hintergrund auftaucht, hat nur etwas mit dem Test zu tun, der mir zeigen soll, dass die Größe auch richtig verändert wird.




    Jetzt noch zur Erklärung, warum das Ganze?

    Ich nehme mir bei der LIGA-Konferenz meistens ein Einzelspiel und die Konferenz auf.
    Ich schaue dann erst das Einzelspiel und anschließend die Konferenz.
    Das macht für mich aber nur Sinn, wenn ich nicht schon die ganzen Ergebnisse aus der Konferenz kenne.
    Leider blendet Sky jedes Tor, dass auf einem anderen Platz fällt auch im Einzelspiel ein, so dass es mir meistens keinen Spaß mehr macht die aufgenommene Konferenz zu schauen.
    Mit der großen, nicht transparenten Uhr, kann ich das nun verhindern. :D


    Wenn noch jemand einen Tipp zur Fontsize - Änderung hat, wäre ich sehr Dankbar. :thumbsup:
  • Ich habe null Ahnung von Python, aber ich denke, dass Dein Code hier vielleicht hilfreich wäre.

    Suche nach "font size python" hilft Dir nicht weiter?

    meitevau
    Für den Support ist das Forum da! Kein Support per PM!
  • Edit by hgdo: unnötiges Zitat entfernt

    :D Ich habe auch NULL Ahnung von Phyton.
    Mein Vorteil ist nur, dass ich einige andere Sprachen beherrsche und mich dadurch relativ leicht in so etwas eindenken kann.
    So ist das Plugin auch damals entstanden. Habe aber seit dem nie wieder was mit Phyton gemacht.

    Ich habe sogar eine Sequence gefunden , die den Font eines Labels ändert, habe es aber bisher nicht geschafft ihn in meinen Code zu integrieren.
  • Hi,

    Ich gehe mal davon aus, dass die Uhr als Label im Skin definiert ist.
    Um an das Label heranzukommen, sollte es im Skin als Widget definiert sein.

    Quellcode

    1. skin = """<screen position="0,0" size="1280,720" zPosition="9999">
    2. <widget name="meineUhr" foregroundColor="#ffffff" position="0,0" size="200,40" font="Regular;23" />
    3. </screen>"""
    Dann muss das Widget in der Klasseninitialisierung definiert bzw. erzeugt werden

    Python-Quellcode

    1. from Components.Label import Label
    2. def __init__(self, session):
    3. self["meineUhr"] = Label ("")
    Um die Schrift zur Laufzeit zu ändern, muss dazu erstmal ein neuer Font erzeugt werden.
    Beispiel:

    Quellcode

    1. from enigma import gFont
    2. myFont = gFont("Regular",30)
    Der Font muss dann der laufenden Instanz des Labels zugewiesen werden.

    Quellcode

    1. inst = self["meineUhr"].instance
    2. inst.setFont ( myFont )
    Zusammengefasst geht es auch so:

    Quellcode

    1. self["meineUhr"].instance.setFont(gFont("Regular",30))

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Oberhesse ()

  • Oberhesse schrieb:

    Hi,

    Ich gehe mal davon aus, dass die Uhr als Label im Skin definiert ist.
    Um an das Label heranzukommen, sollte es im Skin als Widget definiert sein.
    Ja, genau so ist es. :thumbsup:

    Dankeschön für den Code, ich werde werde das nach her sofort versuchen und dann berichten, ob ich es hinbekommen habe.


    PS.:

    Ich habe gerade zufällig den Thread gefunden, als ich damals dieses Plugin gemacht habe.
    Ist ziemlich genau 8 Jahre her. :D
    vuplus-support.org/wbb4/index.…itte-um-programmierhilfe/

    @Oberhesse

    So erst mal vielen Dank noch mal. :thumbsup:
    Es scheint zu funktionieren, aber jetzt tauchen weitere Probleme auf. :D
    V4_all_20220829152413.jpg

    Die Größe des Widget ist natürlich noch die Alte.
    Aus dem Grunde sieht man jetzt nur einen kleinen Teil der Schrift.
    Ich müsste also das Widget selber, auch noch an die neue Größe anpassen. :whistling:

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von vudplusream ()

  • @Oberhesse

    So erst mal vielen Dank noch mal. :thumbsup:
    Es scheint zu funktionieren, aber jetzt tauchen weitere Probleme auf. :D
    V4_all_20220829152413.jpg

    Die Größe des Widget ist natürlich noch die Alte.
    Aus dem Grunde sieht man jetzt nur einen kleinen Teil der Schrift.
    Ich müsste also das Widget selber, auch noch an die neue Größe anpassen. :whistling:


    PS.:
    So, habe jetzt das Widget auch noch angepasst. und siehe da, alles perfekt.
    Den Rest des Tages muss ich jetzt damit verbringen, den ganzen Testmüll, den ich programmiert habe, zu bereinigen und einen einigermaßen lesbaren Code zu schreiben. :D Wer weiß, was mir in acht Jahren wieder einfällt. ;sleeping: Naja, dann bin ich 73.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von vudplusream ()

  • Dankeschön, hätte ich das mal eher gehabt.
    Jetzt bin ich ja fast fertig und arbeite schon daran, dass Ganze einstellbar zu machen.

    Ich freue mich aber tierisch, dass ich hier Hilfe gefunden habe.

    V4_all_20220829172842.jpg


    Fehlt nur noch die Einstellung small oder big, weil das mit dem Skin ja nicht geklappt hat.
    Den Menüpunkt muss ich noch ändern. Alles andere funktioniert jetzt schon.
  • Vor 2 Jahren war ich bei Python auch noch am Punkt Null.
    Die Einarbeitung ging dann viel flotter als gedacht.
    Trotzdem kann mich diese Sprache gelegentlich noch immer zur Verweiflung treiben... :wall1:
    Und wenn es speziell um enigma geht, ist Google auch nicht immer die Lösung.
    Wenn du dich irgendwann tiefer in die enigma-Bibliotheken einarbeiten willst, kann ich diese Seite empfehlen.
    Die Doku lässt sich zwar nicht 100%ig auf VTi anwenden, ist aber sehr informativ, wenn man Infos zu einer Funktion oder Klasse sucht.