Могу ли я построить графический интерфейс от ocaml toplevel?

Несколько вопросов относительно интерактивного программирования на уровне и графическом интерфейсе:

  • Можно ли динамически строить графический интерфейс из ocaml toplevel?

  • Можно также использовать библиотеку Graphics?

Ответы

Ответ 1

  • Вы можете использовать LWT toplevel с интеграцией с основным циклом lablgtk:

установить lwt-glib и lablgtk в дебианских системах:

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

в OCaml toplevel, загрузите все:

#use "topfind";;
#require "lwt.simple-top";;
#require "lwt.glib";;
#require "lablgtk2";;

затем инициализируйте GTK и интеграцию LWT:

GMain.init ();;
Lwt_glib.install ();;

И играйте:

let w = GWindow.window ();;
w#show ();;
  1. Графика не имеет основного цикла, такого как GTK, поэтому проблем там нет. Но внутри приложения GTK вы должны использовать cairo.

Ответ 2

Вы также можете использовать модуль Graphics (см. manual). Вам нужно будет управлять многими вещами самостоятельно (цикл событий, набор инструментов), но это намного проще, чем lablgtk:

#load "graphics.cma";;
Graphics.open_graph " ";;