PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : python: welche gui-lib ist die beste??



luh
03-07-2004, 18:00
hi
ich wurde hierher von linuxforen.de geschickt.
ich bringe mir grade programmieren bei. (pyhton), und wollte wissen, welche grafik bibliothek die beste ist. qt?, gtk?, tkinter? wxwindows?
gruß
luh/ al fayd

peschmae
03-07-2004, 18:48
Tja, das ist wie immer ne schwierige Frage. Kommt drauf an halt ;)
Am besten guckst du sie dir mal einfach an. Qt ist aber definitiv sehr gut :)

MfG Peschmä

tuxipuxi
03-07-2004, 23:49
So eine Frage kann leicht einen Flame provozieren. ;-)

Die Frage nach dem "besten" ist schwer zu beantworten, weil es zum Teil auch eine Geschmacksfrage ist.
Ich versuch es mal ganz neutral:

TKinter scheidet aus. TKinter kommt nichtmal ansatzweise an den Funktionsumfang der anderen ran und ist nicht besonders schön.

Ich weiß nicht ob du auch für Windows programmieren wilst, das ist für die Lizenzfrage ganz interessant zu wissen.
Qt, wxwindows und GTK sind für unix/linux frei(kostenlos und freier sourcecode).
wxwindows und GTK sind auch für windows frei, Qt bräuchtest du eine Lizenz unter windows.

(jetzt nicht mehr neutral ;))
Ich finde von den Toolkits wenn man sie nativ programmiert(wxwindows und Qt c++, gtk hab ich mir nie richtig angeguckt, ich mag es nicht) Qt am schönsten. Ich habe mir einmal die Python bindings für Qt angeschaut und die sehen auch sehr ansprechend aus und sind sehr gut dokumentiert.
Ich würde dir also PyQt empfehlen, aber wie peschmae bereits sagte solltest du dir alle mal angucken(ein bisschen code reicht ja) um zu sehen was dir am besten gefällt.

Michael.

luh
04-07-2004, 10:02
mmh, also ich habe gehört, dass qt sehr langsam sein soll.
das mit wxwindows kapiere ich auch nicht so ganz. wenn ich die oberfläche, und dass ist es ja eigentlich nur, in wxwindows schreibe, dann läuft es auch unter windows?
oder laufen programme im allgemeinen auf beiden, nur die x bibliotheken fehlen?
wie steht es mit der community und qt? gibt es da ne menge? habe gehört, dass die verbindung und pflege gut mit gtk aussieht.
ist tk nicht die native oberfläche von python?
luh

peschmae
04-07-2004, 10:33
mmh, also ich habe gehört, dass qt sehr langsam sein soll.

Tja. Das finde ich nicht. Es ist sicher nicht rasend schnell - aber Gtk ist auch nicht schneller.
Am besten guckst du dir mal n paar Qt/Gtk-Programme an um die Geschwindigkeit zu beurteilen.
(Was aber tatsächlich langsam ist, ist eine KDE-Applikation in einer nicht-KDE Umgebung zu starten, weil da noch die ganzen Sachen (dcop und so) geladen werden müssen bis das eigentliche Programm gestartet wird)



das mit wxwindows kapiere ich auch nicht so ganz. wenn ich die oberfläche, und dass ist es ja eigentlich nur, in wxwindows schreibe, dann läuft es auch unter windows?
oder laufen programme im allgemeinen auf beiden, nur die x bibliotheken fehlen?

Was kapierst du da nicht ganz? Wenn du dein Programm so schreibst, dass es nur WxWidgets als Bibliothek benutzt kannst du das dann auch mit WxWindows, WxGtk und den Wx-Ausgaben für andere Plattformen kompilieren - das läuft dann überall (also auch auf Motif oder MacOS und OS/2).
WxWidgets funktioniert so, dass die Bibliothek im Hintergrund jeweils das Toolkit der Plattform - also z.B. Gtk, Motif oder auch die Win32-Api - verwendet. Die Applikation selber merkt davon dann (im besten Fall) nichts.


wie steht es mit der community und qt? gibt es da ne menge?

Inwiefern? www.qtforum.org und mrunix? Oder was möchtest du noch mehr?
Entwickelt wird Qt allerdings von Trolltech - nicht von einer Community. (Wäre aber auch möglich ein Qt unabhängig von Trolltech weiterzuentwickeln da Qt der GPL untersteht - bisher gibts dazu aber keinen Anlass)


habe gehört, dass die verbindung und pflege gut mit gtk aussieht.

Den Satz verstehe ich nicht.



ist tk nicht die native oberfläche von python?

Nein. Python ist afaik noch eher neu - Tk gibts schon ewig - und wenn das zu einer Sprache gehört dann TCL. Allerdings würde ich Tk heute nicht mehr verwenden - schon nur weil es hässlich aussieht.
(Die Funktionatlität kann ich nicht beurteilen, die Sache wird aber immer noch weiterentwickelt)

MfG Peschmä

luh
04-07-2004, 11:22
was ich noch anmerken wollte:
ich habe nicht vor irgendetwas hier schlecht zu machen. eventl. fragen meinerseits zu python und den verschiedenen libs bitte als newbie fragen ansehen.


(Was aber tatsächlich langsam ist, ist eine KDE-Applikation in einer nicht-KDE Umgebung zu starten, weil da noch die ganzen Sachen (dcop und so) geladen werden müssen bis das eigentliche Programm gestartet wird)

nun das wäre schon mal ein punkt der nicht so fabelhaft ist, oder? ich meine es gibt ja auch eine menge user die nicht kde benutzen, sondern irgendetwas kleines.



Was kapierst du da nicht ganz? Wenn du dein Programm so schreibst, dass es nur WxWidgets als Bibliothek benutzt kannst du das dann auch mit WxWindows, WxGtk und den Wx-Ausgaben für andere Plattformen kompilieren - das läuft dann überall (also auch auf Motif oder MacOS und OS/2).
WxWidgets funktioniert so, dass die Bibliothek im Hintergrund jeweils das Toolkit der Plattform - also z.B. Gtk, Motif oder auch die Win32-Api - verwendet. Die Applikation selber merkt davon dann (im besten Fall) nichts.


das heißt, die ganzen funktionen sind sowieso kompatibel, und nur wegen der gui nicht übertragbar? - ich verstehe dann nicht wieso man mit solchen libs arbeitet!



Nein. Python ist afaik noch eher neu - Tk gibts schon ewig - und wenn das zu einer Sprache gehört dann TCL. Allerdings würde ich Tk heute nicht mehr verwenden - schon nur weil es hässlich aussieht.

ich weiß nicht was du als eher neu bezeichnest, aber python wurde anfang der 90er geschrieben (www.python.org)
was ist denn dann die native oberfläche von python?

luh

anda_skoa
04-07-2004, 14:22
nun das wäre schon mal ein punkt der nicht so fabelhaft ist, oder? ich meine es gibt ja auch eine menge user die nicht kde benutzen, sondern irgendetwas kleines.

Man wird die PyKDE Bindings auch nur dann benutzen, wenn man sie braucht, wenn man zB ein KDE Programm in Python schreiben will.



das heißt, die ganzen funktionen sind sowieso kompatibel, und nur wegen der gui nicht übertragbar? - ich verstehe dann nicht wieso man mit solchen libs arbeitet!

Korrekt, man arbeitet mit solchen Libs, um eine möglichst portable GUI zu haben.




was ist denn dann die native oberfläche von python?

Bezweifel dass es sowas gibt, die wenigsten Sprachen haben eine eigene GUI.
Eigentlich fällt mir gerade überhaupt keine ein, Visual Basic vielleicht.

Ciao,
_

peschmae
04-07-2004, 14:28
nun das wäre schon mal ein punkt der nicht so fabelhaft ist, oder? ich meine es gibt ja auch eine menge user die nicht kde benutzen, sondern irgendetwas kleines.

Ja. Das ist ein nicht so fabelhafter Punkt. Glaube ich auch so geschrieben zu haben.
Das spricht aber nicht gegen Qt sondern dagegen jeden Mist, der das gar nicht braucht und auch sonst keinen Bezug zu KDE hat, gegen die KDELibs zu linken.
Die braucht man nämlich meistens nicht. Es sei denn man wolle ein KDE-Programm schreiben ;)



das heißt, die ganzen funktionen sind sowieso kompatibel, und nur wegen der gui nicht übertragbar? - ich verstehe dann nicht wieso man mit solchen libs arbeitet!

Was meinst du jetzt mit "die ganzen funktionen"? Python selber und die Sachen die da dabei sind arbeiten auf verschiedensten Plattformen.
Damit das Endergebnis auch Plattformunabhängig ist musst du ausschliesslich plattformunabhängige externe libs benutzen - also eben beispielsweise WxWidgets.


ich weiß nicht was du als eher neu bezeichnest, aber python wurde anfang der 90er geschrieben (www.python.org)
was ist denn dann die native oberfläche von python?


Das ist vergleichsweise neu. Ich glaub Tk gibts schon ne Weile länger. Python hat keine eigene "native oberfläche" - das ist halt normalerweise nicht Teil einer Programmiersprache und derer Standardbibliothek.

@anda_skoa: Bei den Sprachen vielleicht schon nicht direkt - aber bei den IDEs (Delphi, C++ Builder, VB).

MfG Peschmä

luh
04-07-2004, 15:07
Das ist vergleichsweise neu. Ich glaub Tk gibts schon ne Weile länger. Python hat keine eigene "native oberfläche" - das ist halt normalerweise nicht Teil einer Programmiersprache und derer Standardbibliothek.


kann es sein, dass ich mich etwas versprochen habe?
ich sprach von tk und meinte tkinter? tkinter ist nämlich


Tkinter is Python's de facto standard GUI (Graphical User Interface) package. It is a thin object-oriented layer on top of Tcl/Tk. To use Tkinter, you don't need to write Tcl code, but you will need to consult the Tk documentation and occasionally the Tcl documentation (since Tk's low-level event handling mechanism is considered part of Tcl).

und


Description:
A graphical interface for Python, based on Tcl/Tk, and used by many of the configuration tools. (from rpm description)
gruß
luh

peschmae
04-07-2004, 15:55
Ah ok, wusste ich nicht :)

Würde aber trotzdem nix Tk-Artiges oder darauf aufbauendes nehmen. Genau so wie ich nie Motif verwenden würde - die Guis sehen einfach nicht nett aus :)

MfG Peschmä

Christoph
05-07-2004, 10:39
Da ich z.Zt. sehr intensiv mit einer Anwendung unter Linux und MacOS X arbeite, die mit wxPython geschrieben ist, hier ein paar Anmerkungen zu diesem Toolkit:

- wxWindows unter Linux verwendet GTK, so dass man mit den Macken dieses Toolkits leben muss (z.B. arbeitet GTK nicht mit dem X-Clipboard zusammen, was den Endanwender zum Wahnsinn treiben kann)

- Es gibt zwar auch eine Aqua-Version von wxWindows, die aber noch nicht sehr weit entwickelt ist, so dass man unter MacOS X auf die X11 basierte GTK-Version zurückgreifen muss. Neben einem fremdartigen Aussehen und Verhalten bedeutet das auch, dass ein X-Server installiert (und gestartet!) sein muss, um die Anwendung zu nutzen.

Wenn also der Mac zu deinen Zielplattformen gehört, dann ist wxWindows nicht erste Wahl.

anda_skoa
05-07-2004, 12:32
- wxWindows unter Linux verwendet GTK, so dass man mit den Macken dieses Toolkits leben muss (z.B. arbeitet GTK nicht mit dem X-Clipboard zusammen, was den Endanwender zum Wahnsinn treiben kann)

Hmm, GTK sollte ansich schon korrektes Clipboard Handling implementiert haben.

Wie äußert sich das falsche Verhalten?

Ciao,
_

Christoph
05-07-2004, 15:30
Hmm, GTK sollte ansich schon korrektes Clipboard Handling implementiert haben. Wie äußert sich das falsche Verhalten?

Copy/Paste (per Maustasten) funktioniert mit anderen (nicht GTK) X-Anwendungen nicht. Das Clipboard funktioniert nur zwischen GTK-Anwendungen, und da auch nur mittels Ctrl-C/Ctrl-V.

peschmae
05-07-2004, 16:36
das stimmt so aber nicht. Bei mir geht Auswählen und Mittlere Maustaste zwischen KDE und Gnome und auch Gtk-Apps problemlos.
Ctrl+C und Ctrl+V geht auch.

(WxWidgets könnte afaik auch Motif verwenden übrigens. Aber das zählt wohl nicht :D)

MfG Peschmä

oracle2025
05-07-2004, 17:47
Ich find Python-GTK recht praktisch, besonders im Zusammenspiel mit Glade kommt man da recht flott zu ansehnlichen Ergebnissen.