Willkommen! Melden Sie sich an oder registrieren Sie sich.

Um schreiben oder kommentieren zu können, benötigen Sie ein Benutzerkonto.

Anmelden - oder - Benutzerkonto erstellen

Plugin mit eTimer

  • Hallo liebes Forum, ich bin gerade an einem Plugin zu erweitern.

    Jetzt aktuell habe ich ein Modul namens "modul.py" wo das eigentliche Plugin enthalten ist.

    Öffnen tue ich es mit "plugin.py" was ja klar ist, ich hab deshalb den Weg gewählt, weil es zum programmieren erstmal erleichtert, weil bei jeden Aufruf wird das modul neu geladen und nach Veränderung gleich eingelesen, so brauch ich enigma nicht immer neu starten.

    Soweit funktioniert das auch alles, beim öffnen erscheint links oben in der Ecke ein kleines Bildchen.


    Jetzt möchte ich aber mehrere Bilder, quasi in Diashow manier mittels eTimer abspielen.

    Heißt ich habe 5 Bildchen in einen Ordner, die möchte ich in Minuten Takt nacheinander abspielen lassen, nun hab ich viel über eTimer und so gelesen, aber ich bin schon am verzweifeln, ich bekomme es nicht hin, hab schon mit Listen und for schleifen u.s.w. probiert

    Vielleicht kann ja hier aus dem Forum jemand weiter helfen.


    Hier ist mein modul.py

    Und hier mein plugin.py:

  • So wie Dein bisheriger Code aussieht verwendest Du nicht das aktuelle OE2.5.


    Du setzt ganz einfach eine Timer-Klasse (alter Code < OE2.5) und definierst den Callback.


    Beispiel:


    Code
    1. self.timer = eTimer()
    2. self.timer.callback.append(timerCallback)


    Um den Timer zu starten führst Du folgendes aus:


    Code
    1. self.timer.start(ZEIT_IN_MS, True)



    Der Callback wird aufgerufen, sobald der Timer abgelaufen ist:


    Code
    1. def timerCallback(self):
    2. print "timer ist abgelaufen...ich starte den timer neu...."
    3. self.timer.start(ZEIT_IN_MS, True)


    Es gibt die stop() Methode zum Abbrechen, und isActive() Methode zum Überprüfen, ob der Timer gerade läuft.


    Das wars schon ;)

  • Bau Dir eine LIste und setzte Dir einen Counter, welchen Du pro abgelaufenen Timer hochzählst und dann auf den Listeneintrag[counter] zugeifst. Wenn counter > Anzahl-Liste fängste wieder bei 0 mit dem counter an.

  • Du übergibst Deiner Klasse nicht mehr das Bild, sondern das Verzeichnis.

    Dieses Verzeichnis durchsuchst Du nach Deinen Dateien, die Du verwenden willst (beispielsweise jpg's, png's etc.), und nimmst das in die Liste auf.

    Aber wo Du das machst bleibt eigentlich Dir überlassen...Du könntest auch schon die vorgefertigte Liste übergeben...das ist vollkommen Latte in Deinem Fall...;)

  • im Moment gebe ich den Pfad ja im python.py an, nicht in der Klasse " PictureScreen" im Modul.


    Edit: mit der Pfadangabe in der Klasse "PictureScreen" bin ich jetzt schon Stunden gescheitert.

  • Ich habe das jetzt nochmal durchgearbeitet, aber so richtig trifft es mein Problem nicht.

    Wenn ich den Bild-Pfad in dem Modul unter "def __init__" anfüge, und den Pfad in "plugin.py" raus nehme, dann kommt rechts oben ein Kästchen und ich kann nichts mehr drücken.

    Kann ich in "plugin.py" auch 2 Klassen übergeben?

  • So das ganze ohne eTimer hab ich jetzt schon mal hinbekommen, dass dieses Bild open in der def "__init__" liegt.

    Aber mit den eTimer komme ich noch nicht ganz klar, hab das ganze mit einer for Schleife lösen wollen.

    So richtig klappt das nicht.


  • Sei mir nicht böse, aber es sieht so aus, als ob Du doch eher ein Anfänger bist, was Programmieren angeht.

    Ansätze hatte ich Dir geliefert, aber das, was Du erreichen willst, kann ich dir nicht vorkauen, wie Du das zu machen hast, da könnte ich es auch gleich selber implementieren... ;)