user-interface - 跨平台 GUI 语言/工具包

标签 user-interface qt cross-platform desktop wxwidgets

我正在尝试编写一个可以部署到 Windows、Mac OS X 和 Linux 的跨平台 GUI 应用程序。我的要求是:

  • 所有三个部署平台的单一代码库,没有大量的条件逻辑来处理平台之间的差异。
  • 在所有三个平台上看起来都尽可能接近“原生”。
  • 易于分发到所有三个平台,从某种意义上说,最终用户可以轻松安装它并且不会遭受极度膨胀(如 this ArsTechnica article. 中所述)

  • 基于这些要求,我将工具包的选择范围缩小到 Qt 和 wxWidgets,因为我所知道的其他工具包(包括 Java 的 Swing 和 SWT、Flex、AIR 等)都不能满足“native-looking”的要求要求。在这两个最后的竞争者中,Qt 似乎为在我的所有三个部署平台上看起来和感觉都是原生的应用程序提供了更好的支持,但我愿意考虑相反的意见。

    我宁愿不使用 C++ 作为实现语言,但我不确定是否有任何实用的替代方案。对于使用 C++ 以外的实现语言,我最大的担忧是部署问题。如 the Ars Technica article 中所述, PyQt 在任何实际意义上都不满足“易于部署”的要求,而且我怀疑 Qt 的大多数其他语言绑定(bind)都会遇到相同的部署问题(至少在 Mac OS X 上)。Java(或 Scala)与 QtJambi? QtRuby? wxPython?

    有谁知道满足 的语言和工具包的任何组合所有三个 上述要求?

    最佳答案

  • 这取决于您的需求。但总的来说,Qt Framework(使用任何语言)和 Java SE(使用任何语言)要好得多,因为它不仅具有跨操作系统的 GUI 库,而且还具有跨操作系统的网络、线程…… wxWidgets 只是 GUI。
  • Qt 和 wxWidgets 都很好。根据我的经验,Qt 更好。 Swing 是……嗯,不太好。
  • 用 C++ 和 Java Swing 应用程序编写的 Qt 和 wxWidgets 应用程序在 Windows、Mac 和 Linux 上部署并不难。规则是,当您使用“ native ”语言进行编程时,部署很简单。我所说的“原生”语言是指编写框架本身的语言。

  • PyQt does not meet the "easy deployment' requirement in any practical sense...



    Python(以及任何其他默认实现作为解释器的语言)应用程序很难在通常意义上部署(我的意思是独立可执行文件的形式)。

    所以可能你有两个选择:
  • C++/Qt 或 C++/wxWidgets。
  • 如果原生外观和感觉不是非常严格的要求,则使用 Java/Swing。
  • 关于user-interface - 跨平台 GUI 语言/工具包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2409462/

    相关文章:

    c++ - 在 Qt 中可视化来自 PMD Camboard Nano 的流

    java - 如何在 GUI 中生成随机数?

    C++:在运行时添加一个dll目录

    c++ - Qt 中的 TeamSpeak SDK

    linux - vala是跨平台语言吗?

    java - 从 JSON Schema 动态创建 Swing GUI(使用 Metawidget)

    Java JFrame无法创建按钮(数组列表)

    qt - 如何为动态创建的 QML 元素添加事件处理程序?

    java - 用 Haskell 编写跨平台软件比用 Java 难多少?

    c++ - 半透明 QWidget 应该可以跨操作系统点击