Linux下GUI开发工具的比较

13

我对GUI设计和开发领域还比较陌生,但是我有一些使用Visual Basic的经验。

我希望基于一个命令行应用程序,在Linux上开发一个相当全面(虽然不是最先进的)的GUI应用程序。经过一番搜索,我觉得有三种方法可以实现这个目标:

  1. 使用GLADE作为设计师的GTK +库
  2. 使用Qtdesigner作为设计师的Qt库
  3. 使用Netbeans的Java Swing

要选择其中之一(或拒绝它们所有),我需要了解上述列表中每个项目的以下方面。按其优先级递减的顺序,这些方面包括:

  1. 许可证:我不能在这里花太多钱...
  2. 编程语言支持:我知道C / C ++,Java知之甚少。
  3. 易学性/易用性
  4. 灵活性和功能强大:如果我需要的大多数(如果不是全部)功能都在核心库中提供,那将非常好。
  5. (缺乏)额外的依赖项:与第4点的推理相同
  6. 外观和感觉
  7. 支持的平台/可移植性(切换平台所需的工作量)

对于上述主题的任何想法都将价值连城(我不想在一个月后意识到我选择了错误的工具)。是否有其他更适合我的目的的工具我不知道吗?

简短的回答将最有帮助。

编辑:好了,我最终选择了Qt。只是因为它比GTK +更容易学习并且似乎更具可移植性(对我来说当然是这样)。

2个回答

15

Qt是您的最佳选择。

  1. Qt许可证规定

    Nokia授予被许可人非独占、免费的权利,复制和 分发指定平台上可执行的Redistributables二进制代码形式。

    因此,您不用担心许可问题。

  2. 它是用C++编写/为C++编写的

  3. 学习起来并不难
  4. 该库(虽然模块化)包含您开发完整GUI所需的一切,还有一些额外的功能(XML、网络等)
  5. 我不清楚这个,请原谅,但我不认为有任何客户端依赖项
  6. 外观和感觉是本地环境编译应用程序的外观和感觉(即Windows外观和感觉在Windows上,OSX外观和感觉在OSX上)
  7. Qt支持广泛的桌面环境

Qt带有大量预先构建的小部件,具有简单的API,可以快速入门... - Ankur Gupta
@puffadder 这只是个人口味问题,但我不太喜欢 Swing。所以我不是最好的人来谈论它。 - Federico klez Culloca
Gtk运行时环境没有依赖性,但Qt有。Python在运行时和开发中都没有依赖性。我仍然对此感到困惑。哪个被广泛使用? - KIRAN K J
我今天刚刚发现了一个名为QT Jambi -- QT for Java!的东西,感谢这个答案。 - Bane

6
为GTK辩护的理由:
  1. LGPL许可证。
  2. 使用C编写,但几乎可以与任何编程语言一起使用,包括C ++,Python,Javascript,Haskell等。最近开发了一种新的编程语言Vala,它具有原生支持GTK的对象、信号和属性。它的语法非常类似于C#,其目的是允许快速开发使用GTK的应用程序。(这是因为在原始C中使用会产生非常冗长的代码。)
  3. 如果你理解面向对象的原则(并不是每个上过Java课程的人都能理解),那么学习起来很容易。
  4. 该库分为两个主要部分:核心库GLib和GUI库GTK。GLib具有您开发应用程序所需的许多功能:各种数据结构、线程、正则表达式、键值文件解析器、类似XML的标记语言解析器(对于完整的XML,您需要使用libxml2库),异步I/O、网络。GTK包含所有图形界面相关的内容。
  5. 以前相当多的应用程序依赖于整套GNOME库,但现在不再是这样了,因为许多有用的功能已经转移到了GLib和GTK中。您应该能够编写一个完整功能的应用程序,而不需要任何额外的依赖。
  6. 外观和感觉取决于平台。在GNOME上,GTK基本上定义了外观和感觉。在Windows上,本地的外观和感觉几乎完美地模拟。在OS X上则不太一样。
  7. 在Windows和OS X上,需要做一些工作才能正确设置库。在OS X上尤其麻烦,您可以选择运行X11服务器或使用更难设置的Quartz后端。在这方面,Qt可能更容易。但是,您的应用程序代码完全跨平台,因此不需要进行任何移植即可在这些系统上运行。
我希望我已经准确地为您呈现了这些优缺点。

我明白了... 那么wxWidgets是什么?你有什么想法吗? - puffadder
我从未使用过它,因此无权发表评论。 - ptomato
GLib 不是 GTK 的一部分。恰好 GTK 在很大程度上使用了 GLib。 - tshepang

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接