13

问候,

我想编写一个带有 GUI 的小型跨平台实用程序。我应该坚持使用哪种语言/GUI 库?有可能吗?

这将是一个小程序,所以我不想让人们下载 JVM 或 .NET Framework。可以原生开发吗?

更新 1。

“本机”是指最终结果将是本机代码,没有 Java 虚拟机或 .NET 公共语言运行时等中间层

更新 2。

免费的解决方案更可取;)

4

15 回答 15

15

如果您了解 C 或 C++,我能想到的第一个跨平台 GUI 框架是:

  • QT(C++,专有但通过 LGPL 许可免费)
  • wxWidgets(C++,最完整稳定但也很大)
  • FLTK (C++)
  • 福克斯(C++)
  • IUP(C,比上面的更简单、更干净)

如果你知道 Pascal,你可以试试freepascal + Lazarus。不过我从来没用过。

于 2008-09-26T11:23:32.327 回答
6

问题是:如果您不想拥有 GUI,但又不想要求用户下载永恒的 API、框架或虚拟机来运行它,无论是 TCL/TK、Java 还是 QT 等,那么您很快就迷路了。

原因是:您必须重新构建这些 API、框架和虚拟机为您提供的所有(GUI)功能,以使其独立于平台。这是一大堆工作要做......

另一方面:Java 虚拟机几乎可以从零开始安装在任何操作系统上,为什么不试试这个呢?

于 2008-09-26T11:24:25.603 回答
5

您想本地开发跨平台程序吗?呃……我认为这行不通,主要是因为那句话是个悖论。如果您编写本机代码,它本质上只能在您为其编程的平台上运行。;-) 这就是框架的全部意义所在。

所以如果你的程序非常小,你应该做的是使用一个非常苗条的框架。itsmatt 对 Qt 的想法是有可能的。

于 2008-09-26T11:18:57.270 回答
4

WxWindows?哦,现在叫 WxWidgets:http ://www.wxwidgets.org/

于 2008-09-26T11:23:54.137 回答
4

wxWidgets绑定了各种语言——例如 python,如果你的应用程序足够小的话。

于 2008-09-26T11:24:22.013 回答
4

拉撒路很棒。Linux 上的 GTK2,Windows 上的 win32/64,euh 上的 WINCE,Wince。它甚至在 Mac 上使用 Carbon(在 COCOA 上工作)。也很容易卖给你的老板(代码与 Delphi 兼容)

于 2009-05-01T22:36:58.290 回答
3

Python 使用 Qt 或 Wx,然后使用 PythonToExe 制作“可分发”怎么样?

必须考虑开发以确保不使用本机功能(即注册表等)。此外,文本文件中的换行符等内容将具有不同的转义字符,因此需要处理

于 2008-09-26T11:23:05.840 回答
3

当您说跨平台时,您会想到哪些操作系统?

正如 Epaga 正确指出的那样,原生和跨平台是相互排斥的。您可以编写在多个平台上本地运行的多个版本,或者您需要使用一些跨平台框架。

在跨平台框架方法的情况下,总是需要额外的安装。例如,这里的许多人建议使用 Python 及其框架之一。这将需要指导人们首先安装 python - 可能还有框架。

如果您的目标是 Windows 和 OS X(如果需要对 Linux 的支持,并准备试验 Linux 的 alpha-release 代码),我强烈建议您看看使用 Adob​​e AIR 进行跨平台 GUI 应用程序.

于 2008-09-26T11:45:26.743 回答
3

我同意 Georgi 的观点,Java 是要走的路。通过一些工作,您可以使您的桌面应用程序也像 Java 小程序一样工作(这样用户根本不需要主动下载任何东西)。请参阅http://www.geogebra.org作为应用程序示例,该应用程序可以作为跨平台 Java 应用程序顺利运行,并且具有到 Web 小程序的简单端口。

使用 Java 的另外两个优点是:

  1. 他们拥有大量用于构建 UI 的库,包括 UI 组件构建器。
  2. Java 运行时框架通常会为用户自动更新。

缺点之一:

  1. 安装在您的最终用户计算机上的 Java 版本可能与您的应用程序不完全兼容,要求您编码到可能的最低分母。
于 2008-09-26T12:12:25.133 回答
3

试试 RealBasic。类似 Visual Basic 的语法,针对 Win32、OS X 和 Linux。我不知道任何以 Linux 为目标的细节,但对于我在 Win32 和 OS X 之间进行的任何跨平台开发来说,这都是一个梦想。

http://www.realbasic.com

编辑:生成本机可执行文件。有一个小成本 - 100美元。

于 2008-09-26T12:42:57.370 回答
2

你看过Qt吗?

于 2008-09-26T11:20:38.247 回答
2

闪光?它几乎无处不在。

于 2008-09-26T11:59:23.870 回答
1

如果它“有”成为桌面使用 Qt。现在没有什么能比得上它。

但是我个人放弃了桌面,并且我所做的任何基于 UI 的项目通常都是基于浏览器/服务器的。您可以轻松编写一个小型自定义服务器来侦听某个端口,这样程序就可以在本地运行,而无需您的用户安装 Apache 或访问网络。我有一个为此目的制作的小型 Lua、Python 和 C++ 框架(想用 V8 为后端添加 Javascript :)

于 2008-09-26T11:27:57.327 回答
1

如果您要查看 Qt 和 WxWidgets,请不要忘记查看GTK+

于 2008-09-26T11:57:02.253 回答
1

我同意 David Wees 和 Georgi,

Java 是卓越的跨平台性。你真的只写一次,到处运行。无需为每个目标操作系统或位数编译代码,无需担心链接任何内容等。

唯一的问题是,正如您所指出的,必须安装 JRE,但即使对于新手最终用户来说,它也是快速而直接的(只需在安装程序中单击“下一步>”几次)。

使用 Java Web Start 部署变得更加容易:用户只需单击网页上的启动按钮,应用程序就会运行(如果根据 JNLP 描述符中指定的内容安装了正确的 JVM)或者用户被重定向到 Java 下载页面(如果没有找到合适的 JVM)。

于 2012-01-17T23:29:12.577 回答