OCaml中的GUI交叉开发具有自然的外观和感觉

Sur*_*tor 5 gtk installation ocaml cross-platform godi

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

我有三个问题:

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

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

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

谢谢你的帮助!

干杯,Surikator

Mic*_*and 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 是当前环境下您的最佳选择。

  • 关于“也可能是 LablGTK 无法正确检测到 X11 集成调用不起作用,因此无法构建”,一年多前就曾出现过这种情况,但早已修复。 (2认同)