Seite 1 von 1

SplashScreen maker

Verfasst: Freitag 8. April 2011, 20:41
von daemonTutorials
Ich habe im laufe eines Projektes ein Modul entwickelt, womit man einen SplashScreen vor das Programm schalten kann.
Das Programm lebt in einem als eigenes Programm weiter.

Man bedient es so:

Code: Alles auswählen

import tkh_splash # SplashScreen Modul

splash("Mein Programmtitel", "path/to/your/image.png", "myapp.py")
Syntax:

Code: Alles auswählen

splash(string title, string imageUrl, string execute)
Der 'title' ist natürlich der Programmtitel, der im SplashScreen angezeigt wird. Momentan ist er Pflicht.
Der 'imageUrl' ist der Pfad zur PNG-Datei, die als SplashScreen angezeigt wird.
Der 'execute'-String ist der Pfad zur auszuführenden Datei, also auch Klasse für nicht-python Programme.
Bild

Ein Feedback ist gerne erwünscht.
Source-Code: http://www.python-forum.de/pastebin.php?mode=view&s=181

Re: SplashScreen maker

Verfasst: Freitag 8. April 2011, 21:58
von Dauerbaustelle
Für Fehler gibt es Exceptions. `exit` hat in Libraries nichts zu suchen.

Re: SplashScreen maker

Verfasst: Freitag 8. April 2011, 22:16
von Xynon1
Um das mal fortzuführen. Statt "os.system" solltest du dir mal das subprocess-Modul ansehen und Konstanten für Höhe und Breite haben meiner Ansicht nach auch nichst in der Funktion verloren. Ebenso wenig in einer Funktion verloren, hat eine Tk-mainloop. Hierzu solltest du ein "master" oder "parent" als Parameter ermöglichen, wenn dieser nicht angegeben wird vom Benutzer, dann kannst du ein Toplevel-Widget erzeugen. Wenn nämlich jemand deinen SplashScreen in einer Tk-Umgebung nutzen will, erschaft er zwei Tk-Mainloops (seine eigene und deine), das Ergebnis ist ein Programm was den Nutzer mit Abstürzen plagen kann.

Re: SplashScreen maker

Verfasst: Samstag 9. April 2011, 11:06
von daemonTutorials
Vielen Dank für das Feedback. Werde ich gleich nächste Woche einbauen.

Re: SplashScreen maker

Verfasst: Sonntag 10. April 2011, 11:31
von daemonTutorials
Ich habe es jetzt schon fertig!
Leider konnte ich den 'exit'-Befehl nicht rausnehmen, da ich das Programm ja beenden muss. Exception werfe ich trotzdem.
Kennt ihr einen anderen weg, das Programm sauberer zu beenden?
http://paste.pocoo.org/show/368925/

Re: SplashScreen maker

Verfasst: Sonntag 10. April 2011, 11:39
von Dauerbaustelle
Ich glaube, du hast den Sinn von Exceptions noch nicht ganz verstanden ;-) Hast du denn mal das Tutorial (http://tutorial.pocoo.org) durchgearbeitet? Wenn eine Exception geworfen wird und unbehandelt bleibt, beendet sich das Programm automatisch, weil der Python-Interpreter nicht mehr "weiter weiß".

Ansonsten solltest du noch die Camelcase-Namen verbessern.

Re: SplashScreen maker

Verfasst: Sonntag 10. April 2011, 15:51
von Xynon1
@Dauerbaustelle
Welche Camelcase-Name sprichst du an? splashScreen, imageUrl, startApp sind mixedCase

@daemonTutorials
und sollte besser zu klein_mit_bodenstrich werden. Ansonsten kann ich keine PEP 8 Verstöße sehen. Eventuell noch 4 statt 8 Leerzeichen nutzen.

Ich würde noch ein fadeout vorschlagen. Geht über das "-alpha" wm_attribute, leider aber nicht unter X11. Unter Windows 2k+ und Mac OSX geht es ohne Probleme.
Edit: Kleine korrektur "-alpha" funktioniert in X11 auch, wenn man compiz aktiviert hat.

Re: SplashScreen maker

Verfasst: Sonntag 10. April 2011, 17:19
von Dauerbaustelle
Xynon1 hat geschrieben:@Dauerbaustelle
Welche Camelcase-Name sprichst du an? splashScreen, imageUrl, startApp sind mixedCase
Camelcase und Mixedcase sind austauschbar.

Re: SplashScreen maker

Verfasst: Sonntag 10. April 2011, 18:35
von BlackJack
@Dauerbaustelle: Nicht nach PEP8. Das unterscheided `CapitalizedCase` a.k.a. `CamelCase` von `mixedCase` durch den keinen Anfangsbuchstaben.

Re: SplashScreen maker

Verfasst: Sonntag 10. April 2011, 18:43
von Dauerbaustelle
BlackJack hat geschrieben:@Dauerbaustelle: Nicht nach PEP8. Das unterscheided `CapitalizedCase` a.k.a. `CamelCase` von `mixedCase` durch den keinen Anfangsbuchstaben.
Von mir aus. Das war eigentlich eine versteckte Aufforderung an Xynon1, mit dem unhöflichen Rumklugscheißen aufzuhören.

Re: SplashScreen maker

Verfasst: Sonntag 10. April 2011, 19:13
von Xynon1
Hehe :mrgreen:, sorry, ihr könnt an mir gerne auch so rumnörgeln. Aber wie soll man denn mit bekommen, dass man irgendwo was falsches aufgeschnappt hat, wenn niemand einen darauf hinweist. Gutes Beispiel dafür sind die hälfte aller Tkinter-Tutorials im Netz. Ich bin der Meinung, besser einmal korrigiert werden, als es auch nur ein zweites Mal falsch zumachen.

Re: SplashScreen maker

Verfasst: Sonntag 10. April 2011, 19:24
von daemonTutorials
Finde ich komisch. In meinem Editor werden 4 angezeigt. Muss ich mal gucken.

Die Variablen werde ich soweit abändern.
Den fadeout werde ich evtl. in der nächsten Version einbauen.