【问题标题】:Comparison of GUI development tools for linux [closed]linux的GUI开发工具比较[关闭]
【发布时间】:2011-04-09 02:11:53
【问题描述】:

我对 GUI 设计和开发领域相当陌生。我确实有一些先前的经验,但那是使用 Visual Basic。

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

  1. 以 GLADE 为设计者的 GTK+ 库
  2. 以Qtdesigner为设计器的Qt库
  3. Java swing 与 Netbeans

为了解决上述任何一项(或全部拒绝),我必须了解上述列表中每个项目的以下方面。这些方面,按优先级降序排列是:

  1. 许可:我不能在这里花太多钱...
  2. 编程语言支持:我会 C/C++,很少会 Java。
  3. 易于学习/使用
  4. 灵活性和强大功能:如果我需要的大多数(如果不是全部)功能都可以在核心库中使用,那就太好了。
  5. (缺少)附加依赖项:推理与第 4 点相同
  6. 外观和感觉
  7. 支持的平台/可移植性(切换平台所需的努力)

关于上述主题的任何想法都将物有所值(我不想在一个月后意识到我为我的工作选择了错误的工具)。还有其他我不知道的更适合我的工具吗?

直截了当的回答最有帮助。

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

【问题讨论】:

    标签: linux swing qt user-interface gtk


    【解决方案1】:

    Qt 是你最好的选择。

    1. Qt 许可证状态

      诺基亚授予被许可方非独家、 免版税的复制权和 分发的目标代码形式 用于执行的可再发行组件 指定的平台。

      所以你应该没有关于许可证的问题

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

    3. 学习并不难
    4. 该库(虽然是模块化的)包含开发完整 GUI 所需的一切以及一些额外的(XML、网络...)
    5. 我不知道,抱歉,但我认为没有任何依赖关系(在客户端)
    6. 外观与应用程序编译的环境是原生的(即 Windows 上的 Windows 外观,OSX 上的 OSX 外观)
    7. 广泛的桌面环境支持 Qt

    【讨论】:

    • Qt 附带了无数预构建的小部件,带有简单的 API 可以开始使用......
    • @puffadder 这只是个人口味,但我不太喜欢 Swing。所以我不适合谈论它。
    • Gtk运行环境没有依赖。但是qt have.python在运行和开发上都没有依赖。我还是很困惑。哪一个被广泛使用?
    • 我今天才发现,感谢这个答案,QT Jambi -- QT for Java!
    【解决方案2】:

    为 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 是什么?有什么想法吗?
    • 我没用过,所以没有资格评论。
    • GLib 不是 GTK 的一部分。恰好 GTK 大量使用它。
    猜你喜欢
    • 1970-01-01
    • 2010-09-07
    • 1970-01-01
    • 1970-01-01
    • 2014-08-24
    • 1970-01-01
    • 2012-07-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多