用于linux的GUI开发工具的比较

时间:2010-09-07 08:29:06

标签: linux swing qt user-interface gtk

我是GUI设计和开发领域的新手。我确实有一些先前的经验,但这是使用Visual Basic。

我想基于命令行应用程序在linux上开发一个相当全面的(虽然不是最先进的)GUI应用程序。我有。做了一些谷歌搜索,我发现主要有三种(或者可能是我的感觉)实现这一目标的方法:

  1. 以GLADE为设计师的GTK +库
  2. 以Qtdesigner为设计师的Qt库
  3. 使用Netbeans进行Java摇摆
  4. 为了解决上述问题之一(或拒绝所有问题),我必须了解上述清单中每个项目的以下几个方面。这些方面按其优先顺序递减顺序为:

    1. 许可:我不能在这里掏出太多钱......
    2. 编程语言支持:我知道C / C ++和非常少的Java。
    3. 易于学习/使用
    4. 灵活性和强大功能:如果我需要的大多数(如果不是全部)功能在核心库中可用,那将是非常好的。
    5. (缺乏)其他依赖关系:推理与第4点相同
    6. 外观和感觉
    7. 支持的平台/可移植性(切换平台所需的工作量)
    8. 关于上述主题的任何想法都值得用黄金来衡量(我不想在一个月后意识到我为我的工作选择了错误的工具)。是否有其他工具更适合我的目的,我不知道?

      直接答案最有帮助。

      编辑:好的,所以我终于和Qt一起去了。仅仅因为它比GTK +更容易学习并且看起来更便携(对于我来说)。

2 个答案:

答案 0 :(得分:14)

Qt是你最好的选择。

  1. Qt许可证声明

      

    诺基亚授予被许可人非独家,   免版税的权利,以复制和   分发目标代码形式   可再发行的执行文件   指定的平台。

    所以你应该对许可证没有问题

  2. 用/ C ++编写

  3. 学习并不是很难
  4. 库(虽然是模块化的)包含了开发完整GUI所需的一切,还包含一些额外的(XML,网络......)
  5. 我不知道这个,对不起,但我不认为有任何依赖(在客户端)
  6. 外观和环境是编译应用程序的环境(Windows上的Windows外观和感觉,OSX上的外观和感觉)
  7. Qt受到各种桌面环境的支持

答案 1 :(得分:5)

为GTK提供案例:

  1. LGPL许可。
  2. 用C语言编写,但几乎可用于任何编程语言,包括C ++,Python,Javascript,Haskell等。最近开发了一种新的编程语言Vala,它本身支持GTK的对象,信号和属性。它的语法与C#非常相似,其目的是允许使用GTK快速开发应用程序。 (那是因为在原始C中使用它确实会产生非常冗长的代码。)
  3. 如果您了解面向对象的原则(并不一定每个人都在大学读过Java课程),那么它很容易学习。
  4. 该库分为两个主要部分:GLib(核心库)和GTK(GUI库)。 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可能更容易。但是,您的应用程序代码完全是跨平台的,因此不需要在任何这些系统上运行任何移植。
  8. 我希望我能准确地代表你的利弊。