Hallo,
ich habe vor, mich mit Python zu beschäftigen. Ich möchte ein Programm mit GUI schreiben. Ich benutze gerade Ubuntu und würde auch unter Ubuntu programmieren wollen. Diese Anwendung soll, wenn sie mal fertig ist, auf für Windows genutzt werden. Könnte ihr mir da mal einen Tipp geben, mit welche GUI ich da am besten arbeite und mir eventuell eine Editor Empfehlung geben?
Gruß
Pole23
Python Anfängerfragen
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Das beißt sich leider. GUIs sind für Anfänger leider nicht wirklich zu empfehlen; muss es denn wirklich eine GUI haben? Evtl. reicht ja für die Problemlösung eine Konsolenapplikation? Welches Problem willst Du denn lösen? Klingt für mich so, als hättest Du da ein ganz spezielles Problem vor Augen. Evtl. gibt es dafür ja bereits Lösungen.pole23 hat geschrieben: ich habe vor, mich mit Python zu beschäftigen. Ich möchte ein Programm mit GUI schreiben.
Das geht mit so ziemlich allen GUIs für Python. Die beiden am meisten empfohlenen hier dürften PyQt und PyGtk sein. Daneben gibts noch Bindings für wxWidgets und TkInter aus der StandardLib. Letzteres würde ich allerdings nicht verwenden.Diese Anwendung soll, wenn sie mal fertig ist, auf für Windows genutzt werden. Könnte ihr mir da mal einen Tipp geben, mit welche GUI ich da am besten arbeite und mir eventuell eine Editor Empfehlung geben?
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
Generell folge ich dem zwar, aber wenn die Aufgabe nicht sonderlich komplex ist (und das will man bei einem Startprojekt hoffen), koennte es genau das richtige sein.Hyperion hat geschrieben:Daneben gibts noch Bindings für wxWidgets und TkInter aus der StandardLib. Letzteres würde ich allerdings nicht verwenden.
@OP: Bitte benutze ausdrucksstaerkere Thread-Titel.
Was den Editor angeht: Nutz doch mal die Suchfunktion. Daneben ist alles sehr brauchbar das Syntax-Highlighting unterstuetzt und fuer dich angenehm.
Michael Markert ❖ PEP 8 Übersetzung ❖ Tutorial Übersetzung (3.x) ⇒ Online-Version (Python 3.3) ❖ Deutscher Python-Insider ❖ Projekte
Ich glaube schon, dass man das (eingeschränkt) parallel angehen kann. Man nehme ein bestehendes, einfach gestricktes gui programm und dann ändert man einfach dort Dinge oder wendet man sie an, die man im Python Tutorial zB lernt. Eine gute interactive shell hilft sicher auch. Hier spricht eigentlich nichts gegen idle.
Da ich ein bisschen wxPython fixiert bin, würde ich einmal das paket mitsamt den Demo installieren. Daneben wird der ganze Sourcecode von wxPython in Action auch gleich mitgeliefert. Mit Pycrust hast du dann auch gleich eine gute Shell. Dann gibts bei der WxPython Wiki noch zahlreiche interessante Seiten vom Anfänger bis zum fortgeschrittenen.
Daneben sind alle gängigen Guis, wie bereits mein Vorposter erwähnt hat, platformunabhängig. Ich würde mir einmal überschlagsmässig screenshots und eine kurze Zusammenfassung oder Vergleich der GUIs ansehen. PyQt und besonders pygtk sind recht beliebt, was man an der Anzahl der Anwendungen sieht.
Text Editoren gibt es so viele, dass sich das aufzählen nicht lohnt. Zum Anfangen ist scite vielleicht gar nicht so schlecht.
Da ich ein bisschen wxPython fixiert bin, würde ich einmal das paket mitsamt den Demo installieren. Daneben wird der ganze Sourcecode von wxPython in Action auch gleich mitgeliefert. Mit Pycrust hast du dann auch gleich eine gute Shell. Dann gibts bei der WxPython Wiki noch zahlreiche interessante Seiten vom Anfänger bis zum fortgeschrittenen.
Daneben sind alle gängigen Guis, wie bereits mein Vorposter erwähnt hat, platformunabhängig. Ich würde mir einmal überschlagsmässig screenshots und eine kurze Zusammenfassung oder Vergleich der GUIs ansehen. PyQt und besonders pygtk sind recht beliebt, was man an der Anzahl der Anwendungen sieht.
Text Editoren gibt es so viele, dass sich das aufzählen nicht lohnt. Zum Anfangen ist scite vielleicht gar nicht so schlecht.
Vielen Dank für die schnellen Antworten. Das Programm soll eigentlich "nur" Daten aus einer Datenbank lesen und auch schreiben können. Daher auch der Gedanke mit der GUI.
Ich werde mir jetzt mal die GUI Vorschläge mal anschauen und mich dann bei Fragen mit Sicherheit noch mal melden.
Ich werde mir jetzt mal die GUI Vorschläge mal anschauen und mich dann bei Fragen mit Sicherheit noch mal melden.
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Anhand dieser Aussage sehe ich da noch keine Notwendigkeit einer GUIpole23 hat geschrieben:Vielen Dank für die schnellen Antworten. Das Programm soll eigentlich "nur" Daten aus einer Datenbank lesen und auch schreiben können. Daher auch der Gedanke mit der GUI.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert
- noisefloor
- User
- Beiträge: 4261
- Registriert: Mittwoch 17. Oktober 2007, 21:40
- Wohnort: WW
- Kontaktdaten:
Hallo,
der Punkt mit der GUI ist: du musst dich mit der GUI _UND_ Python gleichzeitig beschäftigen.
Das Lesen und Schreiben in eine DB kannst du mit Python mit ein paar wenigen Zeilen Code realisieren. Wenn du eine GUI rundherum baust brauchst du für einfache Progs sicherlich mindestens 5x so viel Code.
BTW, ich habe es in einem ähnlich gearteten Thread schon mal gesagt: die IMHO einfachste Art der GUI ist eine Weboberfläche im Browser. Setzt natürlich voraus, dass mein sein Prog als Webanwendung ausführen kann.
Gruß, noisefloor
der Punkt mit der GUI ist: du musst dich mit der GUI _UND_ Python gleichzeitig beschäftigen.
Das Lesen und Schreiben in eine DB kannst du mit Python mit ein paar wenigen Zeilen Code realisieren. Wenn du eine GUI rundherum baust brauchst du für einfache Progs sicherlich mindestens 5x so viel Code.
BTW, ich habe es in einem ähnlich gearteten Thread schon mal gesagt: die IMHO einfachste Art der GUI ist eine Weboberfläche im Browser. Setzt natürlich voraus, dass mein sein Prog als Webanwendung ausführen kann.
Gruß, noisefloor
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Am besten mit einem Web-Framework; dazu siehe auch hier:pole23 hat geschrieben:Das mit der webanwendung ist eine gute Idee. Wie genau setze ich sowa in Python um?
http://wiki.python-forum.de/Python%20im%20Web
Allerdings ist das auch so eine Sache... auch dafür bedarf es imho einiges an Kenntnissen der Sprache, die man zu Beginn einfach noch nicht hat.
Die große Frage dabei ist auch oftmals, ob Du noch nie programmiert hast bzw. Python Deine erste Programmiersprache ist, oder Du Umsteiger bist und Dich vor allem nur an die Python spezifischen Dinge gewöhnen musst. Bei letzterem wäre der Weg sicher sehr zu empfehlen. Als "blutiger" Anfänger würde ich zu einer reinen Konsolenapplikation raten und die GUI (wie auch immer geartet) später drum herum bauen.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert
Das macht es auch nicht einfacher. Im Gegenteil. Man muss das ganze zweimal schreiben einmal „in HTML/JS“ und einmal in Python. Zudem muss man sich damit rumschlagen, dass HTML statuslos ist. Und wenn die Anwendung auch noch komfortabel benutzbar sein soll wird es richtig aufwändig. Klar, dafür gibt es Bibliotheken, aber die muss man auch erstmal kennen.noisefloor hat geschrieben:BTW, ich habe es in einem ähnlich gearteten Thread schon mal gesagt: die IMHO einfachste Art der GUI ist eine Weboberfläche im Browser. Setzt natürlich voraus, dass mein sein Prog als Webanwendung ausführen kann.
Komfort ist dann leider nochmal eine Spur schlechter. Es ist schon schwer genug ein gutes „Komplettpacket“ für klassische GUI-Entwicklung zu bekommen (für Python noch schwieriger). Für Webanwendungen existiert so etwas nicht mal.
Die Beste GUI-Bibliothek für Python ist imo Traits 3. Gerade für einfachste Skripte sehr gut geeignet. Ist allerdings vermutlich nicht was für jeden und die Abhängigkeiten sind recht umfangreich. Habs bis jetzt nur mit der kompletten EPD-Distributions zum Laufen bekommen.
-
problembär
pole23 hat geschrieben:ich habe vor, mich mit Python zu beschäftigen. Ich möchte ein Programm mit GUI schreiben. Ich benutze gerade Ubuntu und würde auch unter Ubuntu programmieren wollen. Diese Anwendung soll, wenn sie mal fertig ist, auf für Windows genutzt werden. Könnte ihr mir da mal einen Tipp geben, mit welche GUI ich da am besten arbeite und mir eventuell eine Editor Empfehlung geben?
Wer fragt, kriegt Antwort:pole23 hat geschrieben:Das Programm soll eigentlich "nur" Daten aus einer Datenbank lesen und auch schreiben können. Daher auch der Gedanke mit der GUI.
Editor: vim
GUI-Toolkit: Tkinter
Grund: Derselbe Tkinter-GUI-Code läuft ohne weitere Installationen sowohl auf Linux und Windows.
Aber Ausnahme: Wenn Du sehr viele Datensätze aus der Datenbank in dem GUI darstellen willst, eignen sich andere Toolkits besser.
Gruß
-
Leonidas
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Oder auch ganz viele:problembär hat geschrieben:Wer fragt, kriegt Antwort:
Editor: vim
GUI-Toolkit: Tkinter
Grund: Derselbe Tkinter-GUI-Code läuft ohne weitere Installationen sowohl auf Linux und Windows.
Aber Ausnahme: Wenn Du sehr viele Datensätze aus der Datenbank in dem GUI darstellen willst, eignen sich andere Toolkits besser.
Editor: vim
GUI-Toolkit: PyGTK
Grund: Derselbe PyGTK-GUI-Code läuft ohne weitere Installationen sowohl auf Linux und Windows.
Editor: emacs
GUI-Toolkit: PyQt
Grund: Derselbe PyQt-GUI-Code läuft ohne weitere Installationen sowohl auf Linux und Windows.
Ich könnt jetzt noch beliebig permutieren...
Zuletzt geändert von Leonidas am Montag 19. Juli 2010, 06:53, insgesamt 1-mal geändert.
Grund: Copy&Paste Fail korrigiert
Grund: Copy&Paste Fail korrigiert
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
:KLeonidas hat geschrieben: Editor: emacs
GUI-Toolkit: PyQt
Grund: Derselbe Tkinter-GUI-Code läuft ohne weitere Installationen sowohl auf Linux und Windows..
[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
- noisefloor
- User
- Beiträge: 4261
- Registriert: Mittwoch 17. Oktober 2007, 21:40
- Wohnort: WW
- Kontaktdaten:
Hallo,
Gruß, noisefloor
Wieso 2x? Was ich meine ist, dass man eine einfache "schön formatierte" Ausgabe mit HTML+CSS (und ohne JS) ziemlich einfach erreicht. Eine komplette GUI a la GTK oder Qt mit HTML/CSS/JS nachzubauen ist in der Tat sehr (zu) aufwendig.Das macht es auch nicht einfacher. Im Gegenteil. Man muss das ganze zweimal schreiben einmal „in HTML/JS“ und einmal in Python.
Gruß, noisefloor
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Naja, die Ausgabe ist ja nicht das Problem, sondern die Eingabenoisefloor hat geschrieben:Hallo,
Wieso 2x? Was ich meine ist, dass man eine einfache "schön formatierte" Ausgabe mit HTML+CSS (und ohne JS) ziemlich einfach erreicht.Das macht es auch nicht einfacher. Im Gegenteil. Man muss das ganze zweimal schreiben einmal „in HTML/JS“ und einmal in Python.
Geht es nur um hübsch formatierte Ausgaben, so kann man die auch losgelöst mit eineer Template Engine erzeugen.
Leider wissen wir ja immer noch nicht, was der OP eigentlich konkret machen möchte.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert
Ich möchte mit der ersten Anwendung verschiedene Informationen über Kunden und deren Server aus einer Datenbank auslesen und speichern können. Das ich zum Beispiel die IP Adressen von einem SErver eingeben kann und dann Information über den Kunden und die vorhandenen Zugriffe und Passwörter und so erhalte.
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Das kann man doch auch ohne GUI! Die benötigten Parameter kann man leicht an ein CLI übergeben. Wobei das alles im Moment eher nach Dumpen von Daten klingt... da sehe ich nocht nicht den Nutzen von Python.pole23 hat geschrieben:Ich möchte mit der ersten Anwendung verschiedene Informationen über Kunden und deren Server aus einer Datenbank auslesen und speichern können. Das ich zum Beispiel die IP Adressen von einem SErver eingeben kann und dann Information über den Kunden und die vorhandenen Zugriffe und Passwörter und so erhalte.
Auf jeden Fall hast Du mit dem DB-Modul oder ggf. einem ORM genug am Hacken für den Anfang. Da würde ich mir nicht noch ne GUI aufhalsen.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert
Ich wollte mit Python generell mal anfangen und da fiel mir das Projekt halt als erstes ein. Aber du hast recht, ich werde erstmal versuchen, ein alles Konsolenbasierend zum laufen zu bekommen, was mit Sicherheit schwer genug seien wird:-)
- noisefloor
- User
- Beiträge: 4261
- Registriert: Mittwoch 17. Oktober 2007, 21:40
- Wohnort: WW
- Kontaktdaten:
Hallo,
wenn es um die reine Abfrage gem. deinem Beispiel geht, dann sollten das in Python ~10 Zeilen Code sein. Wenn man "schön" formatieren will vielleicht auch ein paar mehr.
Gruß, noisefloor
wenn es um die reine Abfrage gem. deinem Beispiel geht, dann sollten das in Python ~10 Zeilen Code sein. Wenn man "schön" formatieren will vielleicht auch ein paar mehr.
Gruß, noisefloor
