【问题标题】:Should I use Perl/Tk, Tcl::Tk or Tkx for a Perl GUI?我应该为 Perl GUI 使用 Perl/Tk、Tcl::Tk 还是 Tkx?
【发布时间】:2009-08-08 15:51:23
【问题描述】:

我真的很喜欢Perl/Tk,但我认为它是 DOA。我认为Tcl::TkTkx 是更好的解决方案。假设我放弃Perl/TkTcl::Tk(自 2007 年以来未更新,似乎无法联系到其作者)或 Tkx 是“最受支持”的路线吗?是否正在积极使用/支持其中任何一个?

【问题讨论】:

标签: perl user-interface tcl tk tkx


【解决方案1】:

在底层Tcl::TkTkx 都使用Tcl 模块作为Tcl/Tk 的桥梁。不同之处在于它们提供给 Perl 的 API。

Tkx 由 ActiveState 开发,他们在 GUI 中使用它作为工具。 (例如 PPM)它被积极使用,尽管很难说有多广泛。它也受到支持,但是因为它在 Tcl 上是如此薄的一层,所以支持的东西并不多。从某种意义上说,这是一件好事——几乎没有什么可以改变或破坏的——但它确实给人一种废弃软件的印象。

Tcl::Tk 最初是作为一个辅助项目来证明 API 与 Perl/Tk 的兼容性是可能的。我喜欢这个想法——只需将use Tk 更改为use Tcl::Tk 并获得Tcl/Tk 的新版本的好处,比如磁贴(主题)支持。不幸的是,它还没有。似乎有一些工作正在完成,但不是很多。它真的可以使用更多的开发人员。

就个人而言,我使用 Tkx。如果您有使用 Perl/Tk 开发的经验,那么过渡不会太痛苦,但我认为这将是一个困难的起点。最糟糕的是,您需要参考Tcl/Tk documentation 才能使用它。如果您了解 Tcl,那就太好了,因为与 Perl 的桥接带来的惊喜很少,但如果您不了解,从不熟悉的语言翻译会很尴尬。

【讨论】:

  • 谢谢。我不介意帮助它 (Tcl::Tk) ,但我在我能找到的每一封电子邮件中都写了作者,它被退回了。他的 wiki 不见了,他的 we 网站不见了,这令人沮丧。谷歌也帮不上什么忙。
  • 如果你想采用 Tcl::Tk 你可以试试这个:cpan.org/misc/cpan-faq.html#How_adopt_module
  • @xcramps:您可以通过向 tcltk-subscribe@perl.org 发送消息来加入邮件列表。我偶尔会在那里看到 Vadim。
  • 我最近采用了 Tkx。希望这有助于它看起来不太被放弃。
【解决方案2】:

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

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

【讨论】:

  • 我认为这对回答所提出的问题没有任何帮助。它甚至无助于回答应该使用什么工具包的切题问题,因为您的答案是基于五年前关于快速发展的技术的信息。
  • @Bryan:由于 Gabor、Adam 和其他人努力构建 Padre,一个大型 wxPerl 应用程序,wxPerl 现在比 5 年前更加重要。
  • @dolmen:这可能是真的,但问题是专门关于 Tk 的,这就是为什么我说我认为答案没有帮助。当有人说“哪个工具更好”或“有其他选择”时,我完全赞成发布其他选项,但这不是问题。 我很高兴听到 wxPerl 存在并且是相关的。
【解决方案3】:

披露:我是 Tcl::pTk 和 Tkx 的维护者,并已向 Perl/Tk、Tcl/Tk 和 Tcl::Tk 提交过贡献。) em>

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 指出的那样,Tkx 自 2010 年以来没有进行太多维护,但主要是因为它不需要太多;随着对 Tcl/Tk 的不断改进,Tkx 通常可以自动利用它们。 TkDocs.com 上的语言无关教程提供了 Tkx 语法示例。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-03
    • 2012-12-20
    • 2015-05-13
    • 2021-05-20
    • 1970-01-01
    相关资源
    最近更新 更多