使用 Ruby 除了可以构建 Web 和控制台应用程序外,还可以编写复杂的 GUI 桌面应用程序,这些桌面应用程序可以不作修改地在多种平台上运行。得益于 JRuby,Ruby 的传统 C 实现的健壮替代品,Ruby GUI 工具包可以使用用于 Java 平台的 UI 工具。本文介绍一个用 JRuby 和 Swing 构建应用程序的库 Monkeybars,并讲解一个示例应用程序。
Ruby 目前被作为一种用于构建 Web 应用程序的编程语言而著称,主要通过 Ruby on Rails 框架使用。但是,这种语言还可以用于开发图形化桌面应用程序。在本文中,您将学习更多关于使用 Ruby 进行桌面应用程序开发的知识,并完成一个详细的示例,这个示例使用 Monkeybars — 一个基于 Swing 和 JRuby 的开源库 — 创建一个 GUI 桌面应用程序。
|
标准的 Ruby 发行版包括用于 Tk 绑定的代码,Tk 是一组开源的、跨平台部件集,用于创建图形化桌面应用程序。这可以带来很大的方便。但是,在从源代码安装 Ruby 时,应确认同时还有 Tk 依赖关系,并确保编译设置包括 Tk。如果在 Windows® 上使用方便的 “一键式(one-click)” 安装程序包安装 Ruby,那么仍然需要采取额外步骤使 Tk 工作,因为它不再支持自动安装。
即使为 Ruby 设置了 Tk,它仍然有点沉闷。在某些目标平台上,它们看上去相当丑陋。而且,创建复杂的接口令人生畏。Tk 最适合用于较小的 GUI 需求。
Tk 的这些弱点促使了其他面向 Ruby 的 GUI 工具包选项的开发(请参阅 参考资料 查看相关链接)。有些值得注意的选择是:
- FxRuby:FxRuby 是用于 Fox 的 Ruby 绑定,这是一个用 C 编写的 GUI 工具包。它可用于使用 RubyGems 的安装。对于 Windows,有一个二进制 gem;用于其他平台的 gem 则需要编译本地代码。
- WxRuby: WxRuby 是用于跨平台 wxWidgets C++ GUI 工具包的一个绑定,通过它可以创建拥有本地外观的桌面应用程序。它可用于使用 gem 的安装。
- QtRuby:QtRuby 提供对 Qt 工具包(在 KDE 桌面系统中使用的工具包)的 Ruby 绑定。对于 Windows 安装,有一个 gem,但是对于其他平台则只有源代码。
- GTK-Ruby:GTK 是在 GNOME 中使用的 UI 工具包。要使之运行,需要编译本地代码。
- Shoes:Shoes 是最近出现的一个与 Ruby GUI 部件有关的工具包。与这份列表中提到的其他工具包不同的是,它是专门为 Ruby 设计的。可以使用特定于平台的安装程序来安装它。
- Swing:Swing?是的,正是这个与每个 Java 运行时环境捆绑的 GUI 库。如果您运行 JRuby,那么可以使用 Swing。
除了其中一个外,所有这些都是用 C 或 C++ 编写的 GUI 或部件库,它们都有相应的绑定,以允许在其他语言,例如 Ruby、Python 和 Perl 中调用它们。在几乎所有情况下,您都要面对多种考虑,例如安装和发行。
当然,选择使用哪个 GUI 工具集取决于您的特定需要。需要考虑以下内容:
本文转自IBM Developerworks中国