PureBasic <-> Python...

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Jetzt nur mal so eine Frage. Warum sollte man mit TK GUIs bauen?
TUFKAB – the user formerly known as blackbird
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Dumme Frage! Wenn man eine GUI braucht, warum nicht?

Eignet sich gut für kleine Dinge und ist IMHO der einfachste/schnellste Weg mit diesem GUI Buildner und ist i.d.R. direkt installiert...

WX, GTK oder QT muss man immer zusätzlich installieren, bei einem kleinen Programm ist das wohl Overkill...

Dürfte wohl auch das einfachste für py2exe und Co. sein (Wenn es denn sein muß.)

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

jens hat geschrieben:Dumme Frage! Wenn man eine GUI braucht, warum nicht?
Weil TK eine Qual für den Anwender ist. TK unter Linux ist besonders schlimm. Aber TK unter Vista sieht nicht besser aus. Bis auf Buttons und Scrollbars verhält sich jedes Element anders.
Eignet sich gut für kleine Dinge und ist IMHO der einfachste/schnellste Weg mit diesem GUI Buildner und ist i.d.R. direkt installiert...
Wenn für Windows entwickelst nimm auf jeden Fall wxPython. Egal ob da jetzt Overhead dabei ist. TK ist ja auch nicht gerade klein. Die User werden es dir danken.
TUFKAB – the user formerly known as blackbird
alen
User
Beiträge: 10
Registriert: Donnerstag 25. August 2005, 17:39
Wohnort: Duisburg
Kontaktdaten:

Hallo Zusammen,

die Situation ist aus der Praxis doch bekannt, man will ein Projekt beginnen oder bekommt eins aufbebrummt. Man versucht es mit seiner Lieblings Programmiersprache umzusetzen und kommt zum Schluss, dass so wie man es machen will, nicht geht.

Entweder man hat zu wenig Wissen in diesem Bereich oder man hat nicht die Zeit und die Lust lange Dokus zu studieren um das zu erreichen, was man sich so vorstellt. Python ist sehr flexibel ich mache mittlerweile sehr viel damit. Habe mich auch an GUIs versucht bin jedoch bei Dokumentation und vor allem mangelnden brauchbaren Beispielen gescheitert. Ich lerne nicht so gerne aus Dokus lieber aus der Praxis am Beispiel.

Und gerade bei Python und GUIs gibt es viel zu lesen wenn man die Suchmaschine befragt, sehr viel Theorie und wenig praxisbezogene Beispiele.

Mein Fazit: Für jeden Zweck gibt es die richtige Programmiersprache, GUI Toolkit oder Modul. Man kann sich nicht wirklich auf etwas festlegen mit dem man alles regeln kann. Die Entscheidung über die Wahl des Tools hängt immer vom Zeitrahmen ab, den man zur Verfügung hat und wie viel Energie man in die Einarbeitung stecken möchte oder kann.

Grüße
Alen Hopek
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Ja, da hast du recht. Es gibt leider zu wenig Beispielcode in der Doku :( Das sieht z.B. bei PHP anders aus: Bei selfphp.info kann man sich wahllos Funktionen raussuchen und findet immer ein kleines Beispiel dabei, wie das hier: http://www.selfphp.info/funktionsrefere ... d_type.php

Das gibt es bei Python leider nicht :(

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
C4S3
User
Beiträge: 292
Registriert: Donnerstag 21. September 2006, 10:07
Wohnort: Oberösterreich

Stimmt, das mit den Dokus ist so eine Sache. Vielleicht ist dies der Grund, warum ich so gerne mit PureBasic arbeite, weil die Doku so stimmig ist.

Hier mal als Beispiel die Online-Doku:
http://www.purearea.net/pb/german/manual/Reference.html

Ich kann mich erinnern einen Podcast (python411) über wxPython gehört zu haben, wo es auch darum ging. Da war dann eine Aussage der Entwickler: "Well, this feature is already implemented, but there is just no manual about it. We prefer coding new features, than documenting them..."
Das ist halt auf der einen Seite gut, auf der anderen eben nicht - weil wie soll man eine Auswahl treffen, wenn man nicht weiß, was das Tool denn kann?
Gruß!
BlackJack

Viele Beispiele in der Doku kann auch Nachteile haben. Ich wage jetzt einfach mal zu behaupten, dass ein Grund für teilweise wirklich scheussliche PHP-Quelltexte die man so in den weiten des Netzes findet, die Beispiele sind, aus denen sich viele Anfänger ihre Programme zusammenbasteln ohne wirklich zu verstehen was da eigentlich passiert. Da werden dann Beispielschnippsel ohne Sinn und Verstand solange mutiert bis sie das gewünschte tun, ohne das der "Programmierer" erklären könnte *warum* es funktioniert.

Wenn eine Sprache oder Bibliothek dann noch ein paar Jahre auf dem Buckel hat und ein paar stilistische Änderungen durchgemacht hat, existieren Beispiele in mehreren "Stilen" im Netz die dann auch fröhlich zusammengerührt werden.

Wenn es zum Beispiel viele Beispiele zu wxPython mit manuell erzeugten IDs gäbe, wäre es schwierig diese Hässlichkeit "auszurotten". Ich erinnere in diesem Zusammenhang nur an ``from Tkinter import *`` und die Verteidigung: "aber das stand doch so in allen Beispielen die ich gelesen habe".
pyStyler
User
Beiträge: 311
Registriert: Montag 12. Juni 2006, 14:24

blackbird hat geschrieben:Jetzt nur mal so eine Frage. Warum sollte man mit TK GUIs bauen?
vielleicht weil es einem Tkinter gefellt!
lunar

pyStyler hat geschrieben:
blackbird hat geschrieben:Jetzt nur mal so eine Frage. Warum sollte man mit TK GUIs bauen?
vielleicht weil es einem Tkinter gefellt!
So sieht Tkinter auf meinem Debian System aus:
Bild

Findest du das etwa schön?

Im Vergleich dazu mal ein Screenshot mit PyQT/PyKDE auf dem gleichen System: http://keyjnotegui.berlios.de/img/scree ... review.png
Zuletzt geändert von lunar am Donnerstag 5. April 2007, 16:42, insgesamt 1-mal geändert.
Benutzeravatar
C4S3
User
Beiträge: 292
Registriert: Donnerstag 21. September 2006, 10:07
Wohnort: Oberösterreich

Tja, das stimmt.

from Tkinter import * habe ich auch oft genug gelesen... ;)

Aber wie an meinem Obigen Beispiel: das ist die Original Doku, die auch immer aktuell gehalten wird und nicht ein "ich schreib mal eben aus Langeweile ein ...".

Was ich sonderbar finde: ich kann mich erinnern über Python gehört zu haben (vor laaaanger Zeit), dass es so minimalistisch ist, damit TIMTOWTDI zu vermeiden. Aber gerade bei snippets hier sehe ich immer wieder, das unterschiedliche Charaktere gerade zu diametral-entgegengesetzte Programmierstile haben.

Btw: so schlimm finde ich Tkinter gar nicht.
Gruß!
pyStyler
User
Beiträge: 311
Registriert: Montag 12. Juni 2006, 14:24

lunar hat geschrieben:
pyStyler hat geschrieben:
blackbird hat geschrieben:Jetzt nur mal so eine Frage. Warum sollte man mit TK GUIs bauen?
vielleicht weil es einem Tkinter gefellt!
So sieht Tkinter auf meinem Debian System aus:
Bild

Findest du das etwa schön?

Im Vergleich dazu mal ein Screenshot mit PyQT/PyKDE auf dem gleichen System: http://keyjnotegui.berlios.de/img/scree ... review.png
toller vergleich!
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

lunar hat geschrieben:So sieht Tkinter auf meinem Debian System aus:
So schlecht sieht das doch nicht aus. Die Schriften sind nur nicht Antialiased, ansonsten ist es doch das selbe wir die PyQT Geschichte...

Hast du einen Aufwendigeren Dialog in TK?

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
lunar

jens hat geschrieben:
lunar hat geschrieben:So sieht Tkinter auf meinem Debian System aus:
So schlecht sieht das doch nicht aus. Die Schriften sind nur nicht Antialiased,
Ja, das allein ist aber schon hässlich... Dazu kommt noch mehr: keine Icons,
Hast du einen Aufwendigeren Dialog in TK?
Nein, aus nahe liegenden Gründen nicht: Ich verwenden TK nicht... Unter Linux nehme ich ausschließlich PyQT/PyKDE.
Dieser Dialog stammt aus einem kleinen (~ 50 Zeilen) Windows-Skript, was ich mir geschrieben habe, um den nervigen Autorun auszuschalten. Dafür wäre es mir doch zu viel Aufwand gewesen, extra wxwidgets oder pyqt zu installieren. Aber aufwendigere Dinge würde ich auch unter Windows mit PyQT machen.
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

lunar hat geschrieben:Dieser Dialog stammt aus einem kleinen (~ 50 Zeilen) Windows-Skript [...] Dafür wäre es mir doch zu viel Aufwand gewesen, extra wxwidgets oder pyqt zu installieren.
Also da sind wir uns schon mal einig ;)

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
pyStyler
User
Beiträge: 311
Registriert: Montag 12. Juni 2006, 14:24

lunar hat geschrieben:
jens hat geschrieben:
lunar hat geschrieben:So sieht Tkinter auf meinem Debian System aus:
So schlecht sieht das doch nicht aus. Die Schriften sind nur nicht Antialiased,
Ja, das allein ist aber schon hässlich... Dazu kommt noch mehr: keine Icons,
wieso keine icons? Geht das mit Tkinter nicht, oder weisst du nicht wie man das Programmiert ?
lunar hat geschrieben: Hast du einen Aufwendigeren Dialog in TK?
Nein, aus nahe liegenden Gründen nicht: Ich verwenden TK nicht... Unter Linux nehme ich ausschließlich PyQT/PyKDE.
Dieser Dialog stammt aus einem kleinen (~ 50 Zeilen) Windows-Skript, was ich mir geschrieben habe, um den nervigen Autorun auszuschalten. Dafür wäre es mir doch zu viel Aufwand gewesen, extra wxwidgets oder pyqt zu installieren. Aber aufwendigere Dinge würde ich auch unter Windows mit PyQT machen.
sorry aber extremst widersprüchlich
Zuletzt geändert von pyStyler am Donnerstag 5. April 2007, 17:01, insgesamt 1-mal geändert.
lunar

jens hat geschrieben:
lunar hat geschrieben:Dieser Dialog stammt aus einem kleinen (~ 50 Zeilen) Windows-Skript [...] Dafür wäre es mir doch zu viel Aufwand gewesen, extra wxwidgets oder pyqt zu installieren.
Also da sind wir uns schon mal einig ;)
Ja, mit dem Unterschied, dass ich unter Windows nicht viel mache (eigentlich ist es nur noch zum Zocken da). Deswegen ist diese Skript ungefähr das komplexeste, was ich je mit Python unter Windows geschrieben habe.

Unter Linux habe ich noch nie Tkinter verwendet. Selbst den kleinsten Dialog mache ich mit PyQT/PyKDE. (Ok, unter Linux ist die Installation auch einfacher: aptitude install python-qt3 python-kde3 qt3-designer und fertig ;) )

Btw, ich habe mal Idle unter Linux installiert:

Bild

Findest du es jetzt immer noch schön? Da sieht sogar die GUI von GNU Emacs besser aus und die ist nun wirklich nicht modern.
lunar

pyStyler hat geschrieben:
lunar hat geschrieben:
jens hat geschrieben:
lunar hat geschrieben:So sieht Tkinter auf meinem Debian System aus:
So schlecht sieht das doch nicht aus. Die Schriften sind nur nicht Antialiased,
Ja, das allein ist aber schon hässlich... Dazu kommt noch mehr: keine Icons,
wieso keine icons? Geht das mit Tkinter nicht, oder weisst du nicht wie man das Programmiert ?
Nein, ich weiß nicht wie das geht (warum auch?), ich kann mir aber vorstellen, dass es mit Tkinter durchaus möglich ist. Nur: Idle hat bei mir keine Icons... Außerdem ist es bei PyKDE extrem einfach, für Standard-Zeug wie "Beenden" oder "Öffnen" ein Icon her zu zaubern: Einfach auf KStdAction zurückgreifen und an einen Button binden. Damit habe ich einen schönen Button mit Icon in ca. 3 Zeilen. Ich muss das Icon weder selbst laden, noch mich um dessen Pfad oder Format kümmern...
lunar hat geschrieben: Hast du einen Aufwendigeren Dialog in TK?
Nein, aus nahe liegenden Gründen nicht: Ich verwenden TK nicht... Unter Linux nehme ich ausschließlich PyQT/PyKDE.
Dieser Dialog stammt aus einem kleinen (~ 50 Zeilen) Windows-Skript, was ich mir geschrieben habe, um den nervigen Autorun auszuschalten. Dafür wäre es mir doch zu viel Aufwand gewesen, extra wxwidgets oder pyqt zu installieren. Aber aufwendigere Dinge würde ich auch unter Windows mit PyQT machen.
sorry aber extremst widersprüchlich
Wieso? Ich bin nie unter Windows unterwegs... Mehr als 50 Zeilen habe ich mit Python unter Windows nie geschrieben... Unter Linux (meinem Hauptsystem) hab ich dagegen noch nie Tkinter verwendet.
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

lunar hat geschrieben:Bild
Welche Version ist das eigentlich? Von wegen:
jens hat geschrieben:Ein dickes Minus hat Tk ja immer erhalten, weil es nicht das 'native look and feel' des Betriebssystem geboten hat. Nun steht auf http://de.wikipedia.org/wiki/Tk_%28Toolkit%29 das Tk ab Version 8 das bietet. Wie siehts damit wirklich aus???

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
lunar

jens hat geschrieben:Welche Version ist das eigentlich? Von wegen:
Der About-Dialog von Idle zeigt 8.4.

Es ist ja auch nicht wirklich falsch, was Wikipedia behauptet: Das ist schon ein "natives" Linux-Look-n-Feel. Blöd nur, dass es unter Linux mehrere Toolkits gibt, die alle unterschiedlich aussehen. Tkinter hält sich halt nicht an moderne Toolkits von Stile eines GTK (wie z.B. wxwidgets unter Linux) oder QT, sondern eben an ein Uralt-Toolkit namens Motif (genau wie Java bis Version 1.4).

Unter Windows war es bis 2000 einfacher: Da gab es nur das "Win32" Toolkit, welches von der Win-API geboten wurde. Aber man sieht ja schon an XP, dass solche "Look-n-Feel-Emulationen" sehr problematisch sind. Viele hatten schon mit den neuen XP-Menüs oder XP-Buttons Probleme... Vom Hören-Sagen soll es unter Vistas Aero ja überhaupt nicht mehr funktionieren, wie blackbird ja schon gesagt hat.
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Das sind ein paar sehr Interessante Aspekte... Weist du spontan wie das wx macht? Wx ist doch irgendwie das einzige was überall den native Look drauf hat, oder?
Warum macht Tk es dann nicht genauso wie WX?

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Antworten