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

问题描述 投票:16回答:3

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

perl user-interface tcl tk tkx
3个回答
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桥接器引入的惊喜很少,但是如果你不这样做,那么从一种不熟悉的语言翻译就很尴尬了。


8
投票

我和wxPerlhere is a short article on O'Reilly取得了不错的成绩

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


2
投票

(免责声明:我是Tcl :: pTk的维护者,并提交了对Perl / Tk,Tcl / Tk,Tcl :: Tk和Tkx的贡献。)

Update for 2019:

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

  • 如果您正在开发一个新项目并且像Perl / Tk语法一样,那么Tcl::Tk可能会很好,Tcl::pTk是一个使用类似Perl / Tk语法的轻量级包装器,同时也允许使用Tcl / Tk语法。 Tcl :: Tk在过去一年中进行了一些维护。
  • 但是,如果你有一个现有的Perl / Tk程序,你可能想尝试Tcl::pTk::TkHijack。它基于Tcl :: Tk,但强调在现有程序中与Perl / Tk语法的兼容性。 use Tk;模块通过拦截Micheal Carman's answer语句可以很容易地尝试Tcl :: pTk。 Tcl :: pTk仍在进行中,但尝试使用不同的程序有助于找到其他需要改进的地方。
  • 或者,如果您不熟悉Perl / Tk,更熟悉实际的Tcl / Tk语法,或熟悉语言包装器(例如Tkinter for Python),更好的选择可能是Tkx。正如TkDocs.com指出的那样,Tkx自2010年以来没有看到太多的维护,但主要是因为它不需要太多;随着对Tcl / Tk的继续改进,Tkx通常可以自动利用它们。 qazxswpoi上与语言无关的教程提供了Tkx语法的示例。

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

© www.soinside.com 2019 - 2024. All rights reserved.