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

puf*_*der 12 linux gtk user-interface swing qt

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

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

  1. 以GLADE为设计师的GTK +库
  2. 用Qtdesigner作为设计师的Qt库
  3. Java与Netbeans一起摇摆

为了解决上述问题之一(或拒绝所有这些问题),我必须知道上面列表中每个项目的以下几个方面.这些方面按其优先顺序递减顺序为:

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

关于上述主题的任何想法都值得用黄金来衡量(我不想在一个月后意识到我为我的工作选择了错误的工具).有没有其他工具更适合我的目的,我不知道?

直落式答案最有帮助.

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

Fed*_*oca 14

Qt是你最好的选择.

  1. Qt许可证声明

    诺基亚授予被许可方非独占,免版税的权利,以复制和分发可再发行组件的目标代码形式,以便在指定的平台上执行.

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

  2. 它是用C++编写的

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


pto*_*ato 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可能更容易.但是,您的应用程序的代码完全是跨平台的,因此不需要在任何这些系统上运行任何移植.

我希望我能准确地代表你的利弊.