跨平台的GUI语言/工具包

Jas*_*ele 6 user-interface desktop qt wxwidgets cross-platform

我正在尝试编写一个跨平台的GUI应用程序,该应用程序将部署到Windows,Mac OS X和Linux.我的要求是:

  1. 所有三个部署平台的单一代码库,没有大量条件逻辑来处理平台之间的差异.
  2. 在所有三个平台上看起来尽可能接近"原生".
  3. 容易分派到所有三个平台,在这个意义上,它可以被终端用户方便地安装,并且不极端膨胀苦(如在讨论这个ArsTechnica文章.)

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

我宁愿不使用C++作为实现语言,但我不确定是否有任何实际的替代方案.我最担心的是使用C++以外的实现语言是部署问题.正如Ars Technica文章中所讨论,PyQt在任何实际意义上都不符合"简单部署"的要求,我怀疑Qt的大多数其他语言绑定都会遇到相同的部署问题(至少在Mac OS X上). (或Scala)与QtJambi?QtRuby?wxPython?

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

Wil*_*cat 8

  1. 这取决于您的需求.但总的来说Qt Framework(使用任何语言)和Java SE(使用任何语言)都要好得多,因为它不仅具有跨操作系统GUI库,而且还具有跨OS网络,线程,... wxWidgets仅限GUI.
  2. Qt和wxWidgets都很不错.根据我的经验,Qt更好.摇摆是......嗯,不太好.
  3. 用C++和Java Swing应用程序编写的Qt和wxWidgets应用程序都不是很难在Windows,Mac和Linux上部署.规则是当您使用"本机"语言编程时,部署很简单."本机"语言是指框架本身编写的语言.

PyQt在任何实际意义上都不符合"易于部署"的要求......

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

所以你可能有两个选择:

  1. C++/Qt或C++/wxWidgets.
  2. Java/Swing如果原生的外观和感觉要求不是很严格.