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

问题描述:

À关于该交互式顶层和图形用户界面编程几个问题:我可以从ocaml toplevel构建一个图形界面吗?

  1. 是否有可能从OCaml的顶层动态地构建一个图形界面呢?

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

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

安装LWT,能说会道,lablgtk,在基于Debian的系统:

的apt-get安装liblwt -glib-ocaml-dev liblablgtk2-ocaml-dev

在OCaml顶层,加载所有内容:

#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。
开始=>
+0

这真是太棒了。我一直在寻找这么长时间的诡计! – 2012-02-16 12:22:04

+0

也可以使用图形库吗? – 2012-02-16 12:24:04

+3

图形没有像GTK这样的主循环,所以这里没有问题。但是在GTK应用程序中,您应该使用cairo。 – 2012-02-16 12:28:51

您还可以使用Graphics模块(见manual)。你需要自己管理很多事情(事件循环,工具包),但它比lablgtk简单得多:

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