Forum: PC-Programmierung Python als GUI


von Michael (Gast)


Lesenswert?

Servus,

ich habe einen code in python (basierend auf python 3.4.3).
Nun möchte ich für die einfachere Bedingung, eine GUI dafür erstellen. 
Wenn ich richtig verstanden habe, unterstützt python keine GUI. Ist es 
möglich irgendwie über C# python aufzurufen, auch über comand line oder 
so, und dann die Befehle, je nach dem was in GUI ausgewählt wird, 
abarbeiten.
Ich habe was über Ironpython gelesen, aber das scheint nur python 2.7 zu 
unterstützen.

Kann mir einer Helfen und sagen wie ich am besten ohne grossen Aufwand 
für python code eine GUI erstellen kann? Ein Link oder ein Beispiel Code 
wäre echt super!

Gruss Michael

: Verschoben durch User
von mh (Gast)


Lesenswert?


von Kaj (Gast)


Lesenswert?


von Peter (Gast)


Lesenswert?

Naja dir sollte halt klar sein, dass Python ein Skriptsprache ist und 
keine Programmiersprache. Natürlich sind die Grenzen da fließend und man 
kann das eine mehr oder weniger gut für das Andere verwenden. Trotzdem 
wirst du nie den Look-&Feel von Qt oder ähnlichem erreichen. Du solltest 
ein Python GUI eher als Notlösung sehen.

von Possetitjel (Gast)


Lesenswert?

Michael schrieb:

> Kann mir einer Helfen und sagen wie ich am besten ohne
> grossen Aufwand für python code eine GUI erstellen kann?

Ich find Tk ziemlich cool, allerdings in Kombination mit Tcl.
Sollte ich mal auf python umsteigen, wäre für mich sicher
Tkinter die erste Wahl.

von Kaj (Gast)


Lesenswert?

Peter schrieb:
> Trotzdem
> wirst du nie den Look-&Feel von Qt oder ähnlichem erreichen. Du solltest
> ein Python GUI eher als Notlösung sehen.
Schwachsinn!

von zappapa (Gast)


Lesenswert?

Peter schrieb:
> Naja dir sollte halt klar sein, dass Python ein Skriptsprache ist
> und
> keine Programmiersprache. Natürlich sind die Grenzen da fließend und man
> kann das eine mehr oder weniger gut für das Andere verwenden. Trotzdem
> wirst du nie den Look-&Feel von Qt oder ähnlichem erreichen. Du solltest
> ein Python GUI eher als Notlösung sehen.

Oder du benutzt Python mit QT wie tausende andere Leute. Da erreicht man 
ganz gut Look&Feel von QT!

Warum sollte Python eigentlich keine Programmiersprache sein?

von Bernd W. (berndwiebus) Benutzerseite


Angehängte Dateien:

Lesenswert?

Hallo Michael.

Michael schrieb:

> ich habe einen code in python (basierend auf python 3.4.3).
> Nun möchte ich für die einfachere Bedingung, eine GUI dafür erstellen.
> Wenn ich richtig verstanden habe, unterstützt python keine GUI.

Das stimmt nicht. Für Python 3 gibt es eine Bibliothek, tkinter, die 
genau für den Zeck gedacht ist.

Die gibt es schon für Python 2, wurde aber dort großgeschrieben.

tkinter gehört eigentlich zu fast jeder Distribution von Python 3 dazu. 
Damit ist dann das Skript auch direkt für jede Plattform geeignet, auf 
der Python 3 läuft.

> oder ein Beispiel Code wäre echt super!

Siehe im Anhang "Buttontest2.py"

Ein weiteres Beispiel mit weniger Grafik, aber mit einer echten 
sinnvollen Anwendung, Dateioperation ec. findet sich hier: 
http://www.mikrocontroller.net/wikifiles/9/90/PyKicadSchematic-ID_Interchanger_RevC.zip

Wenn Du Probleme mit dem Starten hast, wird wohl versehentlich der 
Interpreter für P<thon 2 verwendet. Darum im Zweifel explizit Idle3 
starten, das Skript einlesen und über "run" starten. Das sollte 
funktionieren. Ganz selten: Wenn dann noch eine Fehlermeldung über ein 
fehlendes tkinter kommt, dieses Nachinstallieren.

GUIs sind auch für Skripte eine sehr sinnvolle Erweiterung, weil es 
damit einfacher wird, den User durch Auswahlmechanismen navigieren zu 
lassen.
Dienstlich habe ich z.Z. oft damit zu tun, irgendwelche Hilfsprogramme 
oder Skripte einzusetzten. Und zwar täglich etliche verschiedene, und 
dann genau diese erstmal für Wochen oder gar Monate nicht mehr. Mit 
reinen Kommandozeilen müsste ich mich dann jedesmal neu einlesen.

Bei "echter" Grafikanwendung zeigen sich natürlich Grenzen. Meine Idee, 
damit eine Art Gerberviewer wie aus 
https://www.mikrocontroller.net/wikifiles/5/5a/PyGerberAnalyse_B5_13Jun2013.zip 
schreiben zu wollen, darf natürlich zu recht als Grenzwertig eingestuft 
werden. Aber für Kleinkram geht es trozdem gut genug.

Mit freundlichem Gruß: Bernd Wiebus alias dl1eic
http://www.l02.de

: Bearbeitet durch User
von P. M. (o-o)


Lesenswert?

Peter schrieb:
> Naja dir sollte halt klar sein, dass Python ein Skriptsprache ist und
> keine Programmiersprache. [...] Trotzdem
> wirst du nie den Look-&Feel von Qt oder ähnlichem erreichen. Du solltest
> ein Python GUI eher als Notlösung sehen.

1. Skriptsprachen sind auch Programmiersprachen.

2. Viele verbreitete Skriptsprachen hinken dank JIT-Compilern den 
compilierten Programmiersprachen performancemässig für fast alle 
praktischen Zwecke in keiner Weise mehr hinterher. Ausnahmen vielleicht 
Hochleistungs-Rechnen, Games und Systemprogrammierung. Aber sicher nicht 
eine typische GUI-Anwendung ohne Low-Level-Zeugs oder aufwendige 
Algorithmen.

3. Diejenige Sprache, in der am meisten GUIs programmiert werden, ist 
eine Skriptsprache: Javascript zusammen mit HTML. Auch Dinge, die einer 
nativen Desktop-GUI kaum/nicht mehr nachstehen.

von Bernd W. (berndwiebus) Benutzerseite


Angehängte Dateien:

Lesenswert?

WICHTIGER NACHTRAG:

Bernd W. schrieb:

> Siehe im Anhang "Buttontest2.py"

Es fehlte das Hintergrundbild "P600-Dioden2.gif" im vorherigen Beitrag. 
Es muss im gleichen Ordner wie das Skript stehen.
Wenn Du eine lange Fehlermeldung die mit "_tkinter.TclError: couldn't 
open "P600-Dioden2.gif": no such file or directory" endet, erhälst, ist 
es genau das Problem.

Natürlich kannst Du auf die Tour dort ein eigenes Gif einbinden.

>
> Ein weiteres Beispiel mit weniger Grafik, aber mit einer echten
> sinnvollen Anwendung, Dateioperation ec. findet sich hier:
> 
http://www.mikrocontroller.net/wikifiles/9/90/PyKicadSchematic-ID_Interchanger_RevC.zip

Dort findet sich auch das Beispiel einer "Inline" Anwendung von Grafik 
nach einer Base64 Wandlung (die Sprachauswahl Buttons). "Inline" meint 
hier, dass die Werte für die Grafik als Textartiger Block im Programm 
selber stehen. Das erleichtert die Portabilität, ist aber natürlich nur 
für kleine Grafiken wie z.B. Buttons sinnvoll.

Mit freundlichem Gruß: Bernd Wiebus alias dl1eic
http://www.l02.de

: Bearbeitet durch User
von Kaj (Gast)


Lesenswert?

kleine Frage zu tkinter, da ich es noch nie verwendet habe:
Gibt es fuer die GUI eigentlich auch einen Editor/Designer, so wie es 
bei Qt/PyQt der fall ist? (zumindestens unter Windows gibt es fuer PyQt 
den Designer den es auch fuer das normale Qt gibt)

von Stephan G. (Firma: privat) (morob)


Lesenswert?

ich mache die einfachen oberflächen mit pygame, ist nicht immer optimal, 
aber ...

von Bernd W. (berndwiebus) Benutzerseite


Lesenswert?

Hallo Kaj.
Kaj schrieb:

> Gibt es fuer die GUI eigentlich auch einen Editor/Designer, so wie es
> bei Qt/PyQt der fall ist?

Meines Wissens nicht. Für die meist einfach gestrickte Fälle besteht 
dazu auch nicht so recht der Bedarf.

Ich lasse mich aber gerne vom Gegenteil überzeugen.

Mit freundlichem Gruß: Bernd Wiebus alias dl1eic
http://www.l02.de

von Bernd W. (berndwiebus) Benutzerseite


Lesenswert?

Hallo Stephan.

Stephan G. schrieb:
> ich mache die einfachen oberflächen mit pygame, ist nicht immer optimal,
> aber ...

Gibt es demm pygame mittlerweile für Python 3?

Mit freundlichem Gruß: Bernd Wiebus alias dl1eic
http://www.l02.de

von Stephan G. (Firma: privat) (morob)


Lesenswert?

also ich kann die biblothek runter laden, ich benutze selber aber noch 
2.7.
ich habe mal kurz in idle 3.4 pygame geladen, sieht gut aus.

von M.N. (Gast)


Lesenswert?

Bernd W. schrieb:
> Gibt es demm pygame mittlerweile für Python 3?

Ja, z.B. hier: http://www.lfd.uci.edu/~gohlke/pythonlibs/#pygame

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.