17 Stimmen

Sollte ich Perl/Tk, Tcl::Tk oder Tkx für eine Perl-GUI verwenden?

Ich mag wirklich Perl/Tk aber ich bin zu dem Schluss gekommen, dass es nicht mehr zu retten ist. Ich denke Tcl::Tk y Tkx sind bessere Lösungen. Angenommen, ich lasse Perl/Tk . Ist der "am meisten unterstützte" Weg derjenige mit Tcl::Tk (das seit 2007 nicht mehr aktualisiert wurde und dessen Autor anscheinend nicht erreichbar ist), oder Tkx ? Wird eine dieser Möglichkeiten aktiv genutzt/unterstützt?

2 Stimmen

Wenn Sie Tcl::Tk übernehmen wollen, können Sie dies versuchen: cpan.org/misc/cpan-faq.html#How_adopt_module

16voto

Michael Carman Punkte 30300

Unter der Haube sind beide Tcl::Tk y Tkx verwenden Sie die Tcl Modul als Brücke zu Tcl/Tk. Der Unterschied liegt in der API, die sie für Perl bereitstellen.

Tkx wurde von ActiveState entwickelt, die es in der grafischen Benutzeroberfläche ihrer Tools (z.B. PPM) verwenden. (z.B. PPM) Es wird aktiv genutzt, obwohl es schwer zu sagen ist, wie weit. Es wird auch unterstützt, aber weil es eine so dünne Schicht über Tcl ist, gibt es nicht viel zu unterstützen. In gewisser Weise ist das eine gute Sache - es gibt wenig zu ändern oder zu zerstören - aber es vermittelt den Eindruck von Abandonware.

Tcl::Tk begann als Nebenprojekt, um zu zeigen, dass API-Kompatibilität mit Perl/Tk möglich ist. Ich liebe diese Idee - es wäre wunderbar, wenn man nur noch die use Tk a use Tcl::Tk und erhalten Sie die Vorteile neuerer Versionen von Tcl/Tk wie die Unterstützung von Kacheln (Themen). Leider ist es noch nicht so weit. Es scheint etwas Arbeit zu geben, aber nicht viel. Es könnte wirklich mehr Entwickler gebrauchen.

Ich persönlich verwende Tkx. Wenn Sie Erfahrung mit der Entwicklung in Perl/Tk haben, ist der Übergang nicht allzu schmerzhaft, aber ich denke, dass es ein schwieriger Ort für den Anfang wäre. Das Schlimmste daran ist, dass man sich auf die Tcl/Tk-Dokumentation um es zu benutzen. Das ist großartig, wenn Sie Tcl kennen, da es nur wenige Überraschungen durch die Brücke zu Perl gibt, aber wenn Sie das nicht tun, ist es umständlich, aus einer unbekannten Sprache zu übersetzen.

1 Stimmen

Danke! Ich hätte nichts dagegen, dabei zu helfen (Tcl::Tk), aber ich habe dem Autor an jede E-Mail geschrieben, die ich finden konnte, und sie wurde zurückgeschickt. Sein Wiki ist weg, seine Web-Site ist weg, es ist deprimierend. Und Google hilft auch nicht weiter.

1 Stimmen

Wenn Sie Tcl::Tk übernehmen wollen, können Sie dies versuchen: cpan.org/misc/cpan-faq.html#How_adopt_module

1 Stimmen

@xcramps: Sie können der Mailingliste beitreten, indem Sie eine Nachricht an tcltk-subscribe@perl.org schicken. Ich habe Vadim dort gelegentlich gesehen.

8voto

Nifle Punkte 11562

Ich habe gute Erfahrungen gemacht mit wxPerl , Hier ist ein kurzer Artikel über O'Reilly

Ich hatte win32 im Visier, und das war vor etwa 5 Jahren.

0 Stimmen

Ich glaube nicht, dass dies für die Beantwortung der gestellten Frage hilfreich ist. Es hilft nicht einmal bei der Beantwortung der tangentialen Frage, welches Toolkit verwendet werden sollte, da Ihre Antwort auf fünf Jahre alten Informationen über eine Technologie beruht, die sich rasch weiterentwickelt.

2 Stimmen

@Bryan: wxPerl ist heute viel relevanter als vor 5 Jahren, dank der Bemühungen von Gabor, Adam und anderen, Padre, eine große wxPerl-Anwendung, zu entwickeln.

0 Stimmen

@dolmen: Das mag wahr sein, aber die Frage bezog sich speziell auf Tk, weshalb ich sagte, dass ich die Antwort nicht für hilfreich halte. Ich bin dafür, andere Optionen zu nennen, wenn jemand fragt, "welches Tool ist besser" oder "gibt es Alternativen", aber das war nicht die Frage. <shrug> Ich bin froh zu hören, dass wxPerl existiert und relevant ist.

3voto

chrstphrchvz Punkte 594

( Offenlegung : Ich bin ein Betreuer von Tcl::pTk und Tkx und habe Beiträge zu Perl/Tk, Tcl/Tk und Tcl::Tk eingereicht).

Update für 2019:

Perl/Tk hat in den letzten Jahren Veröffentlichungen vorgenommen und Entwicklung seither, aber der Betreuer gibt zu, dass er nicht genügend Zeit für größere Verbesserungen hat, wie z.B. Einarbeitung der Änderungen von Tcl/Tk 8.5+ . Wer Funktionen oder Verbesserungen in neueren Tcl/Tk-Versionen nutzen möchte, sollte stattdessen eines der Tcl/Tk-"Wrapper"-Module verwenden (die den Zugriff auf eine vollständige, separate Tcl/Tk-Installation von Perl aus ermöglichen, anstatt alles Tk in einem einzigen Perl-Modul unterzubringen).

  • Wenn Sie an einem neuen Projekt arbeiten und die Perl/Tk-Syntax mögen, sind Sie vielleicht mit Tcl::Tk ein leichtgewichtiger Wrapper, der eine Perl/Tk-ähnliche Syntax verwendet, aber auch Tcl/Tk-Syntax erlaubt. Tcl::Tk wurde im vergangenen Jahr gewartet.

  • Wenn Sie jedoch ein bestehendes Perl/Tk-Programm haben, können Sie stattdessen versuchen Tcl::pTk . Es basiert auf Tcl::Tk, legt aber Wert auf Kompatibilität mit der Perl/Tk-Syntax in bestehenden Programmen. Die Tcl::pTk::TkHijack Modul macht es ziemlich einfach, Tcl::pTk auszuprobieren, indem es die use Tk; Erklärungen. Tcl::pTk ist noch in Arbeit, aber das Ausprobieren mit verschiedenen Programmen hilft, herauszufinden, was noch verbessert werden muss.

  • Wenn Sie sich nicht mit Perl/Tk auskennen, mehr mit der eigentlichen Tcl/Tk-Syntax vertraut sind oder sich mit Wrappern für Sprachen auskennen (z.B. Tkinter für Python), ist Tkx vielleicht die bessere Wahl. Wie Micheal Carman's Antwort weist darauf hin, dass Tkx seit 2010 nicht mehr viel Wartung erfahren hat, aber hauptsächlich deshalb, weil es nicht viel gebraucht hat; da weiterhin Verbesserungen an Tcl/Tk vorgenommen werden, kann Tkx diese normalerweise automatisch nutzen. Die sprachunabhängigen Tutorials auf TkDocs.com liefern Beispiele in Tkx-Syntax.

Letztes Jahr habe ich Tcl::pTk entdeckt und bin seitdem einer der Maintainer geworden. Ich verwende es hauptsächlich, um die native Aqua UI von macOS zu nutzen (anstelle von XQuartz, wie es Perl/Tk verwendet), wofür es auch von einer Handvoll anderer aktiver Nutzer verwendet wird.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X