5

我想为我正在编写的 OCaml 应用程序构建一个 GUI。我的第一个想法是使用GTK+。我希望我的应用程序能够以自然的外观和感觉在 Mac、Linux、Windows 上运行。我知道,虽然 GTK+ 默认在 Mac 上使用 X11(看起来很糟糕),但有一个gtk-osx-application使用石英,看起来很自然,而且我刚刚使用 macports 安装了它。

我有三个问题:

(1) 实际上可以gtk-osx-application +quartz+no_x11与 OCaml 一起使用吗?(我的 GODI 安装以前(使用基于 x11 的 gtk2)安装 lablgtk2 没有问题,现在(gtk-osx-application +quartz+no_x11删除了之前基于 x11 的 gtk2)抱怨 not found /opt/local/lib/libgtk-x11-2.0.0.dylib,这是与 x11 相关的。但是,就我而言知道,通过 GODI 安装 lablgtk2 时,无法选择石英而不是 x11。)

(2) 如果我在我的 Mac 上使用 gtk-osx-application 开发我的代码,我可以在使用不同 GTK 的其他平台上按原样使用该代码进行编译吗?或者这会带来问题吗?

(3) 如果它确实带来了问题,您是否知道在 OCaml 中开发 GUI 的任何其他环境可能在外观和感觉方面都可能很好并且仍然易于交叉使用?(我知道 labltk,但我更喜欢功能更多的东西,例如,使用笔记本的能力,也就是标签面板,以及能够使用 Glade 进行快速 GUI 设计。)

谢谢你的帮助!

干杯,Surikator

4

1 回答 1

3

假设你可以让 lablgtk 工作,这可能是你目前最好的选择。

为了让它工作:你有没有试过在移除 X11 GTK 并安装 Quartz GTK 后重建 lablgtk?基于 X11 GTK 构建的 LablGTK 自然无法在 Quartz GTK 上运行,因为它将链接到错误的库,但重建可能会成功。也可能是 LablGTK 无法正确检测到 X11 集成调用不起作用,因此无法构建,但我希望修复这个问题并不难,因为 LablGTK 确实支持 Windows。

如果您在 Mac 上为 GTK 开发代码,它应该可以在其他平台上正常工作。当然,您会想对其进行测试,但它应该可以工作。一定要小心使用 GTK 工具来使对话框按钮顺序之类的东西正常工作。

我认为曾经有一组 OCaml 绑定到 wxWidgets,但它们似乎没有被广泛使用,而且 wx 在我的经验中使用起来很痛苦。在制作 Qt 绑定方面也有一些工作,这会很棒,但我认为目前还没有任何项目在这方面取得良好进展。

如果 UI 是您项目的一小部分,您可以考虑将其与后端解耦并使用 Qt 用 C++ 编写 UI,或者编写平台原生 UI,并在嵌入式中将 UI 调用到 OCaml 代码运行时来完成真正的工作。但这可能需要更多的工作,并且可能不会给您带来太多好处,具体取决于您的应用程序。

所以:GTK 是当前形势下的最佳选择。

于 2011-01-28T16:55:44.910 回答