实用的GUI工具包?

时间:2009-05-08 22:25:43

标签: java python ruby user-interface cross-platform

我正在考虑使用漂亮的编程语言绑定(Java,Ruby和Python)来实现跨平台。什么是“最平坦”的学习曲线,但有足够的能力来执行大多数标准GUI功能?你们/ gals会推荐什么; FOXwxTkQt

11 个答案:

答案 0 :(得分:20)

我会选择Qt。它适用于所有主要平台,并且不断改进。你也可以非常快速地开始。 有Java,Ruby和Python的绑定 如果你正在编写开源程序,那么它是免费的。

答案 1 :(得分:7)

老实说,我用Tk,wx和Qt构建了东西,我同样讨厌它们。 Qt的视觉编辑器是我认为的三个中最不讨厌的。

答案 2 :(得分:4)

WX一路走来! 我不是GUI专家,设计师或甚至是“GUI人”,但最近我需要为产品配置工具编写前端(实际上它是一组工具,但我们想要一个接口来访问和运行它们所有)。
这些工具都是用Python编写的,所以我自然而然地转向了用于UI的Python 我决定使用wxPython ...一个“import wx”和一些教程后来,我正在敲打框架,笔记本和按钮面板,就像我知道我在做什么。
当我遇到困难并且wxPython文档非常有用时,我找到了很多帮助我的例子 - 尽管它们只是C ++文档,但它们仍然非常直观。 快速的网络搜索将提供大量的wxPython教程,以帮助您入门。

我已经写过并重构了几次UI,但是我在<中有一个干净的工作原型。 1天。该工具是跨平台的,所有的窗口和框架都与原生窗口系统(WinXP,Win2K3,Gnome等)相匹配 - 我印象非常深刻。 如果我必须用任何其他语言编写UI,我肯定会寻找一个wx实现。

答案 3 :(得分:3)

Tk仍然是一个非常可行的解决方案。学习曲线很大程度上取决于你。像我一样,许多人可以或者已经在大约一天内学习了Tcl和Tk的所有基础知识。有些人在使用多年后仍然会对抗语法。这完全取决于你用“C和Java”等传统语言“学习”你学到的东西有多好。如果你的背景中有任何口齿不清,你可以在早上学习Tcl。

Tk的另一个好处是它适用于Tcl,Perl,Python和Ruby(以及其他),因此您不会遇到特定的语言。虽然,没有直接的Tk到Java端口。用一种语言学习它,你的知识很容易转移到其他语言。 Tk开箱即用Tcl和Python,所以对于那些语言,没有别的东西可以安装。

我会说,在过去几周写了数百行Python / Tkinter代码后,我很喜欢很多更倾向于使用Tcl进行编码,但这更像是个人事情比什么都重要。

有关使用Tcl的Tk,Ruby和Perl的更多信息,请参阅http://www.tkdocs.com

答案 4 :(得分:2)

如果您正在考虑Java,SWT是一个优秀的跨平台GUI工具包。

答案 5 :(得分:2)

我强烈推荐Rapid GUI Programming python development本书。 Author's Page

我记得Elsevier已经发布了一本Python-GUI书籍,但链接和名称现在让我失望了。

答案 6 :(得分:1)

我没有和Qt一起工作过,所以我无法判断它,但是我已经和wx一起工作了,而且很容易合作并且还很精益。此外,wxWidgets在每个平台上都提供了本机小部件,这是一个巨大的优势(特别是对于Mac)。当其他人模仿原生平台的外观时,wxWidgets直接使用本机小部件,这在许多情况下更快。

答案 7 :(得分:1)

如果Java是您的首选语言,请考虑Groovy。它是一种非常好的动态语言,位于Java之上,并且在编写GUI方面具有一些非常好的功能(SwingBuilder)。如果不是因为我在Tcl / tk中的效率很高,我认为Groovy将是我个人的第二选择,尽管我不是Java或Swing本身的忠实粉丝。 Groovy希望从这两者中获取大量的单调乏味。

有关详细信息,请参阅GUI Programming with Groovy

答案 8 :(得分:1)

我推荐Gtk。这是一个很好的,跨平台,漂亮的工具包。它的设计考虑了语言绑定,并允许创建良好的语言绑定(pygtk,ruby / gtk2,java-gnome,gtk#等)。 Gtk +很容易学习。

答案 9 :(得分:0)

我只想提一下,Qt不仅仅是一个GUI工具包。你可以用它来获得更多,很好地集成到框架中,如果你正在考虑跨平台开发,那么它将非常值得使用它。唯一的问题是,如果你想通过它的Python绑定PyQt使用它,你要么需要支付PyQt商业许可证(昂贵)或GPL你的代码。

答案 10 :(得分:0)

Gtk是一个很棒的跨平台工具包。此外,ruby的绑定都可以在rubygem中使用,因此非常容易安装。 Gtk用于许多程序,如鹦鹉螺,并具有许多,许多功能。权衡是Gtk做得那么多,它有点复杂。

当我写一个gui时,我拒绝对每个小部件进行手工编码,我坚持使用图形环境来构建我的表单。我认为这意味着使用Glade或QT Creator。我尝试了QT Creator,发现它太慢了,我无法使用它,所以我用林间空间构建我的表格。

在glade中构建表单时,表单的属性将保存在XML文件中,该文件可由您的语言读取。许多语言都有“Gtk :: Builder”模块,它们读取XML文件,然后使用GTK在运行时在屏幕上显示表单。因此,如果您使用glade,您可以使用您选择的语言(C java,ruby,python),并且您不需要对所有表单进行“手动编码”。

考虑到语言的选择,我选择红宝石。

公平地说,我没有尝试过wxRuby或Tk。但我知道我不想手工编写GUI。你可以在visualruby.net上看到我的工作。我使用ruby和glade来创建许多GUI。