我应该将Perl / Tk,Tcl :: Tk或Tkx用于Perl GUI吗?

时间:2009-08-08 15:51:23

标签: perl user-interface tcl tk tkx

我非常喜欢Perl/Tk,但我认为它是DOA。我认为Tcl::TkTkx是更好的解决方案。假设我放弃Perl/TkTcl::Tk(自2007年以来没有更新,其作者似乎无法联系到)或Tkx是“最受支持”的路线吗?这些是否被积极使用/支持?

3 个答案:

答案 0 :(得分:16)

引擎盖下Tcl::TkTkx使用Tcl模块作为Tcl / Tk的桥梁。不同之处在于他们向Perl提供的API。

Tkx是由ActiveState开发的,他们在GUI中使用它来获取工具。 (例如PPM)它被积极使用,但很难说有多广泛。它也得到了支持,但因为它比Tcl薄了一层,所以没有太大的支持。在某种程度上这是一件好事 - 几乎无法改变或破坏 - 但它确实给人一种放弃软件的印象。

Tcl :: Tk最初是作为一个侧面项目来证明API与Perl / Tk的兼容性是可能的。我喜欢这个想法 - 只需要将use Tk更改为use Tcl::Tk并获得更新版本的Tcl / Tk(如tile(主题)支持),这将是非常棒的。不幸的是,它还没有。似乎有一些工作要做,但不是很多。它真的可以使用更多的开发人员。

就个人而言,我使用Tkx。如果您在Perl / Tk开发方面经验丰富,那么过渡并不会太痛苦,但我认为这将是一个难以开始的地方。最糟糕的是,您需要参考Tcl/Tk documentation才能使用它。如果你知道Tcl是很好的,因为Perl的桥接器引入了很少的惊喜,但如果你不这样做,那么从一种不熟悉的语言翻译就很尴尬。

答案 1 :(得分:8)

wxPerlhere is a short article on O'Reilly

取得了不错的成绩

注意:我的目标是win32,这是大约5年前的事。

答案 2 :(得分:2)

免责声明:我是Tcl :: pTk的维护者,并且已经向Perl / Tk,Tcl / Tk,Tcl :: Tk和Tkx提交了文稿。)

2019年更新:

Perl/Tk在过去几年和development之后都发布了,但是维护者承认没有足够的时间来进行重大改进,例如incorporating changes from Tcl/Tk 8.5+。任何想要使用Tcl / Tk较新版本中的功能或改进的人都可能会感兴趣,而不是使用Tcl / Tk“包装器”模块之一(该模块可从Perl访问完全独立的Tcl / Tk安装,而不是将所有Tk在单个Perl模块中)。

  • 如果您正在从事新项目并且喜欢Perl / Tk语法,则可以使用Tcl::Tk,它是一种轻量级包装程序,它使用类似Perl / Tk的语法,同时还允许使用Tcl,可能会很好/ Tk语法。 Tcl :: Tk在过去的一年中得到了一些维护。

  • 但是,如果您已经有了Perl / Tk程序,则可以尝试使用Tcl::pTk。它基于Tcl :: Tk,但强调与现有程序中的Perl / Tk语法兼容。 Tcl::pTk::TkHijack模块通过拦截use Tk;语句,使尝试Tcl :: pTk变得相当容易。 Tcl :: pTk仍在开发中,但是尝试使用其他程序可以帮助发现其他需要改进的地方。

  • 或者,如果您不熟悉Perl / Tk,不熟悉实际的Tcl / Tk语法,或者不熟悉语言的包装器(例如,Python的Tkinter),则更好的选择可能是Tkx。正如Micheal Carman's answer所指出的那样,自2010年以来Tkx并没有进行太多维护,主要是因为它不需要太多维护。随着Tcl / Tk的不断改进,Tkx通常可以自动利用它们。 TkDocs.com上与语言无关的教程以Tkx语法提供了示例。

我去年发现了Tcl :: pTk,从那以后成为它的维护者。我主要使用它是为了使用macOS的本地Aqua UI(而不是像Perl / Tk那样使用XQuartz),这也是少数其他活跃用户也报告使用它的原因。