【问题标题】:Is Ruby any good for GUI development? [closed]Ruby 对 GUI 开发有用吗? [关闭]
【发布时间】:2008-09-22 15:26:11
【问题描述】:

我正在考虑创建一个我想要跨平台的基于 GUI 的工具。我不喜欢 Java,因为我个人不喜欢 Swing。我目前正在考虑使用 C# 并使用 Mono 使其成为跨平台的。但是我想知道像 Ruby 这样的新奇跨平台语言是否可以为我提供一个不错的 GUI 开发环境。

【问题讨论】:

  • 我实际上使用了一个跨平台应用程序,它有一个我可以使用的工具包:Netbeans。我认为它基于 Swing,但是您将 Netbeans 作为抽象层。我很想在 Ruby 中做点什么,但答案中提到的所有框架看起来都非常不成熟。要是微软让 .Net 跨平台就好了……
  • 嗯,.NET 是跨平台的。它叫 Mono,哟。

标签: ruby user-interface cross-platform


【解决方案1】:

简短的回答:不(因为你说跨平台)。

长答案:跨平台 GUI 是一个古老的问题。 Qt、GTK、wxWindows、Java AWT、Java Swing、XUL——它们都面临着同样的问题:生成的 GUI 并不是在每个平台上看起来都是原生的。更糟糕的是,每个平台的外观都略有不同,因此即使您能够以某种方式获得在每个平台上看起来都是原生的工具包,您也必须以某种方式将您的应用程序编码为 感觉在每个平台上都是原生的。

这归结为一个决定:您是想最大限度地减少开发工作并拥有一个在每个平台上看起来和感觉都不完全正确的 GUI,还是想最大限度地提高用户体验?如果选择第二个选项,则需要为每个平台开发一个通用后端和自定义 UI。

ruby 对于您的通用后端来说是个不错的选择。

【讨论】:

  • 即使我不/喜欢/你回答 - 因为这不是我想听到的 - 这是最有用的(和诚实的!:) 答案。
  • SWT for Java 不是试图解决在跨平台环境中拥有本机 GUI 的问题吗?
  • 我认为人们接受为“本机”但不是本机的唯一 GUI 是 Web 浏览器。这就是我如此喜欢 RIA 的原因。
  • 如果设计得当,Qt 应用程序的外观和感觉都是原生的。
【解决方案2】:

您将拥有Ruby/GTK,它允许您在 linux 下使用 GTK 工具包。我认为这应该可以在 Windows 和 Mac Os 下运行(如 Gimp、Gaim 等)。

关于 Ruby/GTK 的 french magazine post a good beginner article

编辑:根据the SourceForge project 的主页,Ruby-Gnome2(又名 Ruby/GTK)是跨平台的(Windows、Linux、Mac Os)。

【讨论】:

  • GTK... SciTE,通过 GTK 移植,从 Win 的 900 kbytes 移动到 Mac 的 80 mbytes。即使不计算所有依赖项(python、perl、sqlite...),启动它也只需要大约 20 秒。
【解决方案3】:

Ruby 有 Shoes,但这可能有点轻量级。

【讨论】:

  • 我对鞋子的体验是它不是很好..
  • 顺便说一句,该链接对我不起作用。鞋子项目死了吗?
  • Shoes 项目已经重新启动,采用了一种新方法:它有一个与旧版本基本兼容的纯 Ruby API,以及一个创建实际视觉效果的可插入工具包。 (目前唯一的工具包是Java Swing)
【解决方案4】:

通过 Ruby,您可以使用 Tk,这是一个成熟的跨平台 UI 工具包。它是 Python 和 Tcl 的事实上的 GUI 工具包,也可与 Perl 一起使用。最新版本的 Tk 使用本机小部件,解决了 Tk 看起来过时的主要问题。

http://www.tkdocs.com/ 是一个专门介绍 Tk 的中立语言网站,其中包括用 Ruby 和 Tcl 编写的示例。

【讨论】:

  • 对于任何查看 TK 的人(至少对我而言)的提示,请提前计划好您希望 UI 的外观以及每个窗格。然后了解这些东西在传统知识中的名称,其余的应该就位。我一头扎进它,以为我会做出下一个最好的东西,但我知道我还有很长的路要走。
【解决方案5】:

还有FXRuby,它受益于一本实用程序员书籍,还有wxRuby,它基于wxWidgets C++ GUI 框架。

【讨论】:

    【解决方案6】:

    作为一名 wxperl 程序员,我知道 wxruby 也在那里。 Wx 非常快,并且具有真正的跨平台外观。

    【讨论】:

    • wxRuby 自 2009 年起就死了(
    【解决方案7】:

    看看Ruby GUI 2008 Survey Results 和讨论here。你会很想知道的。

    【讨论】:

      【解决方案8】:

      不确定 Ruby,但您提到了 Mono/C#——我最近使用过 Mono 和 GTK#,印象非常深刻。看起来很稳定,跨平台的移植性也不错。

      【讨论】:

        【解决方案9】:

        Ruby/GNOME2 运行良好。您可以使用 Glade 拖放窗口元素并从您的 Ruby 应用程序的 UI 中加载它。

        【讨论】:

          【解决方案10】:

          您看过 Java 上的 SWT 吗?它使用原生小部件,并且比 Swing 更容易获得漂亮的界面。

          【讨论】:

            【解决方案11】:

            如果您曾经冒险使用 Mac,请查看 RubyCocoa。它显然只适用于 OSX,但我看到很多人在寻求在 mac 上进行 GUI 开发时摸不着头脑,如果你喜欢 ruby​​,RubyCocoa 很有趣。

            【讨论】:

              【解决方案12】:

              我强烈支持 Qt 进行跨平台 GUI 开发。这太棒了,API 非常直观。 GUI 的外观和感觉几乎是 Qt 原生的,因为它使用底层操作系统提供的 GUI 控件。

              虽然与 C++ 的基本接口与其他语言绑定可用。对于 Ruby,RubyQt 可用。不幸的是,它非常不成熟。

              【讨论】:

                【解决方案13】:

                我建议查看visualruby。它是一个使用 ruby​​ 创建 GUI 的 IDE。它使用 GTK 作为其图形工具包,并且这些应用程序在任何平台上对我来说都很棒。您可以在截图页面查看Win7、WinXP、Ubuntu和Mac的截图:

                http://visualruby.net/site/Screen%20Shots.html

                您可以通过在各种平台上安装 visualruby 并运行示例程序,轻松地在每个平台上试用它。

                检查的答案是在 visualruby 发布之前编写的。

                【讨论】:

                  猜你喜欢
                  • 2014-08-24
                  • 2010-09-07
                  • 2013-03-20
                  • 1970-01-01
                  • 1970-01-01
                  • 2013-04-30
                  • 1970-01-01
                  • 2010-09-06
                  • 2011-03-17
                  相关资源
                  最近更新 更多