Seite 1 von 1

grafische oberfläche ohne pyGTK, pyQT, Tkinker etc

Verfasst: Montag 11. September 2006, 16:36
von Costi
ich muss für windoof ein programm schreiben (und dan mit py2exe "compilieren"), das eine grafische oberfläche beinhaltet.

gibt es keine möglichkeit das mit dem browser per cgi zu machen?
also wie öffne ich über python einen ca 350 x 100 px grosses browser fenster ohne das das zurück botton, adresenleiste usw angezeigt wird?

danke

Verfasst: Montag 11. September 2006, 17:01
von CM
Meinst Du die Frage ernst? Du willst ein GUI, aber lieber in form eines cgi-Skriptes, das widerrum ein Executable sein soll und einen Browser füttert, der, wahrscheinlich auch ohne web-server im Hintergrund, aber gar nicht als Browser arbeiten soll? Habe ich das richtig verstanden?

Falls ja, solltest Du vielleicht Deine Frage überdenken und dann nochmal posten. Falls nein, entschuldige bitte meine Ignoranz.

Gruß,
Christian

Verfasst: Montag 11. September 2006, 17:05
von EnTeQuAk
hi hi gut gesagt ;)

Aber mal eine ganz andere Frage...
also wie öffne ich über python einen ca 350 x 100 px grosses browser fenster ohne das das zurück botton, adresenleiste usw angezeigt wird?
Ich weiß zwar nicht, wie.... Aber wozu brauchst du das?


MfG EnTeQuAk

Verfasst: Montag 11. September 2006, 17:25
von Costi
zitat CM:
Meinst Du die Frage ernst? Du willst ein GUI, aber lieber in form eines cgi-Skriptes, das widerrum ein Executable sein soll und einen Browser füttert, der, wahrscheinlich auch ohne web-server im Hintergrund, aber gar nicht als Browser arbeiten soll?

genau so. das konfifurationsprogramm meines routers ist ebenfalls so aufgebaut.
ich hab jetzt ein bischen ausprobiert und festgestellt, dass das erste argument der IEXPLORER.EXE (also internet explorer) die zu öfnende seite ist.
allerdings kann dazu die verbindung zum server (also in diesen fall localhost) anscheinend nur über port 80 hergestellt, werden und ich glaub man braucht admin rechte um bei ports die niedriger als 1024 sind zu listen. vieleicht gibts also hoifentlich ne alternative

jetzt muss ich nur wissen (bin mir ziemlich sicher das das mit javascript geht) wie ich einen popup starte und dabei den haubtbrowserfenster schliesse

Verfasst: Montag 11. September 2006, 18:09
von BlackJack
Also eigentlich sollte man Dich bei diesem Lösungsansatz nicht auch noch ermutigen, ich finde den auch furchtbar, aber die Portnummer kannst Du als Teil der URL angeben. Also `http://localhost:12345/bla.html` verbindet sich mit einem Server der auf Port 12345 lauscht.

Bei Deinem Router wird das CGI-Programm wohl eher auf dem Router selbst laufen.

Und wenn Du schon eine lokale Browser/Webserver Lösung schreibst, dann solltest Du davon Abstand nehmen die totale Kontrolle über die GUI (Grösse etc.) haben zu wollen und Dich auch nicht auf den IE festlegen, sondern mit dem `webbrowser` Modul arbeiten, welches unter Win den vom Benutzer bevorzugten Browser startet.

Verfasst: Montag 11. September 2006, 18:31
von Costi
ich weis, IE zählt aber in diesen fall das ":" zur url

ja! gib mir meht info über diesen "webbrowsermodul", IE nervt nähmlich auch noch mit "popup wurde geblockt" und "wollen sie diese fenster wirklich schliesen?"

Verfasst: Montag 11. September 2006, 19:26
von Joghurt
Was genau spricht denn gegen wxPython etc.?

Verfasst: Montag 11. September 2006, 22:09
von CM
Hoffe sehr, daß das jetzt nicht besserwisserisch rüberkommt ...

Costi, egal, ob es machbar ist oder nicht: Deine Idee ist nicht so dolle. (Schau' Dir mal meine ersten Posts hier im Forum an - am meisten habe ich gelernt, wenn mir bedeutet wurde mein Konzept grungsätzlich zu überdenken.) Die GUI Toolkits gibt es, um Dir das Leben einfacher zu machen ...

Schreibe hier doch einfach mal, worauf Du hinaus willst - Du bekommst bestimmt eine bessere Empfehlung fürs Design.

Gruß,
Christian

Verfasst: Dienstag 12. September 2006, 12:20
von Monk
Hallo Costi

nimm dafür am besten eine HTA-Datei (wenn es wirklich nur Windows sein soll). Dabei handelt es sich im Prinzip um genau das, was Du suchst: Ein IE ohne Navigations- und Menüleisten. Näheres dazu findest Du in der Online-MSDN-Library unter http://msdn.microsoft.com/workshop/auth ... erview.asp

Die Ausgabe Deines CGI kannst Du mit einem IFRAME einbinden:

Code: Alles auswählen

<IFRAME SRC="http://127.0.0.1:55555/foobar" APPLICATION="yes">
Zum Thema Sinnhaftigkeit:
Deine Idee ist gar nicht so schlecht, wenn Du sie richtig durchdenkst und sinnvoll implementierst.
Wenn Du nur deshalb CGIs nimmst, weil Du HTML kannst und sonst mit keinem GUI-Toolkit vertraut bist, dann sei gewarnt, dass Du auf lange Sicht mehr Pflegeaufwand mit Deinen CGIs hast, und sich die Einarbeitung in ein beliebiges Toolkit schnell bezahlt macht.
Wenn Du allerdings ein Webframework wie Django nimmst, weil Dir das automatisch generierte Admin-Interface reicht (TurboGears hat bestimmt auch etwas analoges dazu), dann ist das die vielleicht schnellste Methode, ein sich professionell anfühlendes GUI für Deine Anwendung zu erstellen.

Gruß, der Monk

Verfasst: Dienstag 12. September 2006, 14:24
von Costi
Bingo! HTA ist die lösung, wie geschafen für mein prob, thx Monk



ich hab schon alles ziemlich gut durchdacht und glaub, dass diese lösung wirklich die beste und einfachste ist.
Ich will einen zu msn kompatiblen (dank msnlib.py) messenger, machen der auch sein eigenes protokoll hat.

wenn ich fertig bin (bei so vielen hausaufgaben wahrscheinlich erst in 3 wochen) poste ich euch dan den queltext



youguhrt schrieb:
Was genau spricht denn gegen wxPython etc.?

das man es zuerst lernen muss^^

Verfasst: Dienstag 12. September 2006, 14:39
von mitsuhiko
Costi hat geschrieben:das man es zuerst lernen muss^^
Lohnt sich aber und geht schneller. Gut programmierte Webanwendungen sind sehr schwer zu koordinieren weil du auf Browserschwächen Rücksicht nehmen musst (tust du sowieso nicht, weil dein Programm nur mit dem Internet Explorer 5.5 oder 6.0 funktionieren wird), du auf korrektes Escaping Acht geben musst, hoffentlich das MVC Pattern verwendest etc...

Da lohnen sich die 5 Minuten Tutorial lesen :roll:

Verfasst: Dienstag 12. September 2006, 21:20
von Costi
hmm... wenn ihr ALLE mir sagt, ich solls nicht machen dan werde ich schon nachdenlich...

kann ich den ein programm mit ner grafischen oberfläche mit py2exe compilieren??

Verfasst: Dienstag 12. September 2006, 21:30
von Nirven
Ja, sogar erstaunlich problemlos. Im Gegensatz zu anderen Modulen hat wxPython mir noch nie wirklich Probleme gemacht (wenn ich die setup.py erstmal so hatte, wie py2exe sie haben wollte...).

Verfasst: Dienstag 12. September 2006, 21:39
von Leonidas
Costi hat geschrieben:kann ich den ein programm mit ner grafischen oberfläche mit py2exe compilieren??
Ja, wxPython-Programme mit py2exe zu kompilieren ist wesentlich einfacher als wenn man irgendein anderes Toolkit nehmen würde.