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

时间:2012-02-16 10:33:52

标签: functional-programming gtk ocaml read-eval-print-loop ml

- 关于交互式顶层和图形用户界面编程的几个问题:

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

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

2 个答案:

答案 0 :(得分:12)

  1. 您可以通过与lablgtk主循环集成来使用LWT顶层:
  2. 在基于debian的系统上安装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。

答案 1 :(得分:6)

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

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