我真的很喜欢Perl/Tk
,但我认为这是DOA。我认为Tcl::Tk
和Tkx
是更好的解决方案。假设我放弃Perl/Tk
。与Tcl::Tk
(自2007年以来没有更新,其作者似乎无法联系)或Tkx
的“最受支持”路线是什么?这些是否被积极使用/支持?
在引擎盖下,Tcl::Tk和Tkx都使用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桥接器引入的惊喜很少,但是如果你不这样做,那么从一种不熟悉的语言翻译就很尴尬了。
我和wxPerl,here is a short article on O'Reilly取得了不错的成绩
注意:我的目标是win32,这是大约5年前的事。
(免责声明:我是Tcl :: pTk的维护者,并提交了对Perl / Tk,Tcl / Tk,Tcl :: Tk和Tkx的贡献。)
Perl/Tk在过去几年中已经发布了development,但是维护者承认没有足够的时间用于重大改进,例如incorporating changes from Tcl/Tk 8.5+。任何想要在较新的Tcl / Tk版本中使用功能或改进的人可能会对使用Tcl / Tk“包装器”模块之一感兴趣(它提供从Perl访问完全独立的Tcl / Tk安装,而不是放入所有Tk在单个Perl模块中)。
use Tk;
模块通过拦截Micheal Carman's answer语句可以很容易地尝试Tcl :: pTk。 Tcl :: pTk仍在进行中,但尝试使用不同的程序有助于找到其他需要改进的地方。我去年发现了Tcl :: pTk,从此成为了它的维护者。我主要使用它来使用macOS的原生aqua UI(而不是像Perl / Tk一样使用的XQuartz),这也是少数其他活跃用户也报告使用它的原因。