This page (revision-6) was last changed on 21-Jan-2008 13:16 by ThomasBayen 

This page was created on 03-Oct-2006 21:29 by UnknownAuthor

Only authorized users are allowed to rename pages.

Only authorized users are allowed to delete pages.

Page revision history

Version Date Modified Size Author Changes ... Change note
6 21-Jan-2008 13:16 4 KB ThomasBayen to previous Tagging
5 08-Nov-2006 16:41 4 KB PeterHormanns to previous | to last Formatierung
4 08-Nov-2006 16:41 4 KB PeterHormanns to previous | to last Formatierung
3 08-Nov-2006 15:38 4 KB MarkusMonderkamp to previous | to last wx-Tutorials
2 08-Nov-2006 15:29 4 KB MarkusMonderkamp to previous | to last UI und GUIs an JSPWiki angepasst
1 03-Oct-2006 21:29 4 KB UnknownAuthor to last

Page References

Incoming links Outgoing links

Version management

Difference between version and

!!~PerlGUIDies ist eine AlteSeite aus unserem UseModWiki bei Sourceforge.>>
<<
Bitte überarbeite die Seite, passe die Formatierung für das JSPWiki an
und entferne diesen Text.

Vielen Dank!

{{{
==
<nowiki>PerlGUI</nowiki> ==
>>Welche GUI-Bibliotheken gibt es für Perl?

<<!Perl-GTK=== Perl-GTK ===>>
* Homepage GTK2 f&uuml;r Perl http://gtk2-perl.sourceforge.net/
* Tutorials
<<**[1|http://personal.riverusers.com/~swilhelm/gtkperl-tutorial/][http://personal.riverusers.com/~swilhelm/gtkperl-tutorial/>> <<1] |>>
<<**[2|http://www-zeuthen.desy.de/computing/documentation/perl/gtkperl-tutorial/][http://www-zeuthen.desy.de/computing/documentation/perl/gtkperl-tutorial/>>
<<2]>>
<<!Perl-Qt>>
<<=== Perl-Qt ===
>>* Homepage http://perlqt.sourceforge.net/
* <<[PM-Vortrag|http://renormalist.net/cgi-bin/twiki/view/PM/PerlQt][http://renormalist.net/cgi-bin/twiki/view/PM/PerlQt>> <<PM-Vortrag]
>>der <<[Dresden[http://renormalist.net/cgi-bin/twiki/view/PM/WebHome Dresden>>
<<Perlmongers|http://renormalist.net/cgi-bin/twiki/view/PM/WebHome]Perlmongers]>>

<<!Perl===>> <<Perl >>/ Tk<< ===>>

* Homepage http://www.perltk.org
* <<[Mastering[http://www.oreilly.com/catalog/mastperltk/index.html Mastering>>
Perl/Tk von <<OReilly|http://www.oreilly.com/catalog/mastperltk/index.html]OReilly]>> - Zitat: ''"Mastering Perl/Tk is the one and
only book you need for programming with Perl/Tk."'' (''ThomasBayen
besitzt eins'')

<<!!===>> Erfahrungen<< ====>>

ThomasBayen hat sich in 2004 intensiv mit GUIs unter Perl
beschäftigt. Sein Fazit: Die obigen drei sind die einzigen mit
einer halbwegs funktionierenden API. Dazu kommt eventuell noch das
Java::Swing-Modul, mit dem ich noch keine Erfahrung habe (wohl aber
mit Swing an sich, das ich empfehlen kann).

* Die QT-Implementation ist von der Struktur her grosser Mist, weil
sie nicht richtig in das Perl-Objekt-Modell integriert ist. Dies
liegt daran, daß QT an sich absoluter Mist ist, wenn es darum geht,
es in irgendeiner anderen Sprache als C++ zu benutzen. Die
originalen "Signals & Slots" können logischerweise nicht direkt
von Perl aus benutzt werden und so hat man es in der Perl-API
eigentlich immer mit zwei Objekten zu tun: Dem gewrappten
C++-Objekt und einem Perl-Objekt. Wer eigene Widget-Typen erstellen
und wie native Widgets integrieren will, hat keine Chance, dies zu
erreichen.

* Perl/Tk ist eine echte Perl-Lösung. Man kann in Perl komplett
eigene Widgets schreiben, die sich dann nahtlos in das Toolkit
integrieren. Es existiert schon eine ganze Weile und kann als
ausgereift gelten. Es ist mit einem überschaubaren Aufwand zu
lernen und insofern schnell benutzt. Es gibt eine lebendige
Mailingliste, die auch hilft. Der Nachteil ist, daß es keine so
große Community hat wie moderne Toolkits (GTK oder QT) und deshalb
vom Design und von "neumodischen" Widgets und Features her etwas
altbacken wirkt. So fehlt z.B. die "Magie" der Textausgabe unter
Pango genauso wie ein vernünftiges HTML-Widget, von der Integration
in einen modernen Gnome- oder KDE-Desktop ganz abgesehen. Perl/Tk
ist im Prinzip auf jeden Rechner portabel, auf dem Perl läuft. Ich
selber habe ein identisches Programm unter Linux und Windows laufen
gehabt.

* Die GTK-Umsetzung für Perl ist sehr gelungen. Dies liegt im
übrigen auch an der Struktur von GTK, die dies gut fördert (Ja -
Stallman hat Recht: Es IST strukturell besser als Qt). Leider ist
die Perl-Doku recht dürftig und die Nutzerbasis ist bei GTK-Perl
auch sehr klein. Auf der anderen Seite sind gerade diese zwei
Punkte natürlich bei GTK an sich ein grosser Vorteil. Ich habe
ausschließlich mit der C-Doku gearbeitet und mich dort gut
zurechtgefunden. Allerdings muss man sich dazu schon etwas
ernsthafter mit dem Thema auseinandersetzen. Die Integration in
Perl-Objekte hat mir ganz gut gefallen und es ist möglich, eigene
Widget-Typen zu erstellen und mit nativen Typen zu kombinieren. Ein
Betrieb unter Windows war nicht möglich (kann sich aber inzwischen
geändert haben).

<<__Fazit:__'''Fazit:'''>> Perl/Tk ist das richtige, um mal eben eine GUI an ein
Programm dranzustricken. Es ist auch die "most perlish" Lösung. Das
schönste Ergebnis ergibt sich mit GTK, das von der Grundlage her
viel leistungsfähiger und moderner ist; allerdings hat es eine
etwas längere Lernkurve. QT ist für kleine Aufgaben zu kompliziert
und für große Aufgaben völlig ungeeignet, solange man keine eigenen
Objekttypen erzeugen kann; damit ist es der große Verlierer des
Vergleichs.

<<!==>> Nachtrag(21.09.2005): <<__wxPerl__<nowiki>wxPerl</nowiki> ==>>

Nicht zu vergessen ist das GUI Framework Wxwindows, das portabel
und laut Homepage (http://www.wxwindows.org/) auf jeder
unterstützten Plattform ein natives Look & Feel bietet. Mit
wxPerl (http://wxperl.sourceforge.net/) steht eine API zu diesem
(O-Ton) "awesome" Werkzeug bereit. Aktuell ist wxwindows Release
2.6.1 und <<~wxPerl<nowiki>wxPerl</nowiki>>> in der Version 0.25
vom 12.07.2005.

<<__Update zu ~wxPerl am 08.11.2006:__ (von MarkusMonderkamp)
* wxWindows hei&szlig;t nun [wxWidgets|http://sourceforge.net/projects/wxwindows] und hat mittlerweile die Version 2.7.1
* und [wxPerl|http://wxperl.eu/] #0.50
wx ist von Hause aus C++ -lastig und deckt einen gro&szlig;en Funktionsumfang ab, selbst Netzwermethoden sind dabei.

Wenn ich mehr Erfahrungen in der Handhabung habe, werde ich Euch
hier daran teilhaben lassen.
<<}}}