我可以从ocaml toplevel构建图形界面吗?

Fab*_*ant 11 gtk ocaml functional-programming ml read-eval-print-loop

- 关于交互式顶层和图形UI编程的几个问题:

  1. 是否可以从ocaml toplevel动态构建图形界面?

  2. 也可以使用图形库吗?

Pie*_*art 12

  1. 您可以通过与lablgtk主循环集成来使用LWT顶层:

在基于debian的系统上安装lwt-glib和lablgtk:

apt-get install liblwt-glib-ocaml-dev liblablgtk2-ocaml-dev

在OCaml顶级,加载一切:

#use "topfind";;
#require "lwt.simple-top";;
#require "lwt.glib";;
#require "lablgtk2";;
Run Code Online (Sandbox Code Playgroud)

然后初始化GTK和LWT集成:

GMain.init ();;
Lwt_glib.install ();;
Run Code Online (Sandbox Code Playgroud)

玩:

let w = GWindow.window ();;
w#show ();;
Run Code Online (Sandbox Code Playgroud)
  1. 图形没有像GTK这样的主循环,因此没有问题.但是在GTK应用程序中你应该使用cairo.

  • 图形没有像GTK这样的主循环,因此没有问题.但是在GTK应用程序中你应该使用cairo. (3认同)

Tho*_*mas 6

您也可以使用该Graphics模块(参见手册).你需要自己管理很多东西(事件循环,工具包),但它比lablgtk以下简单得多:

#load "graphics.cma";;
Graphics.open_graph " ";;
Run Code Online (Sandbox Code Playgroud)