2

我试图弄清楚如何在图形小部件中实例化多行文本框。LablGTK2 似乎在文档方面非常有限,并且 API 对于开始看起来像我想要的东西来说是稀缺的。

我已经开始交叉引用原始 GTK2 文档https://developer.gnome.org/gtk3/stable/gtkobjects.html与 Lablgtk2 文档http://wwwfun.kurims.kyoto-u.ac.jp /soft/lsl/lablgtk/html/GText.html

但是,我发现的最好的教程或简单/清晰的示例使用了非常有限的单行文本输入框: http: //plus.kaist.ac.kr/~shoh/ocaml/lablgtk2/lablgtk2-tutorial/x1155。 html

我发现一些清晰简单的派生示例非常适合学习基础知识。有没有人有示例小插图显示如何使用 OCaml & Lablgtk/lablgtk2 设置多行文本?或者对于将展示开发多行文本框(这是任何基于 GUI 的程序中非常重要的功能)的教程的更好建议?理想情况下,我想将这个多行文本中的文本输入连接到我编写的 OCaml 模块,该模块将处理该文本,然后 GUI 将在 GUI 上显示该处理结果。任何帮助将不胜感激。

4

3 回答 3

3

您可以将 GtkTextView 小部件用于多行文本:

let _ =
    (* prepare main window *)
    let window = GWindow.window () in
    window#connect#destroy ~callback:GMain.Main.quit;

    (* add text view with scroll bars *)
    let scroll = GBin.scrolled_window
                 ~hpolicy:`AUTOMATIC ~vpolicy:`AUTOMATIC
                 ~packing:window#add () in
    let textview = GText.view ~packing:scroll#add_with_viewport () in

    (* set text *)
    textview#buffer#set_text "multi-\nline\ntext";

    (* show everything and enter main loop *)
    window#show ();
    GMain.Main.main ()
于 2013-04-30T12:01:54.820 回答
1

你说得对,文档非常稀疏。因此,我们必须通过互相模仿来学习。像猴子...

我敢打赌ocamleditor应该包含一个如何做到这一点的例子:https ://forge.ocamlcore.org/projects/ocamleditor/

此外,OCP 正在创建一个简单的 OCaml 编辑器,它也应该很有帮助:https ://github.com/OCamlPro/ocp-edit-simple

于 2013-04-29T18:30:55.297 回答
1

lablgtk2 源代码提供了易于理解的基本代码片段(至少比现实世界的代码更容易)

如果您使用 godi,它们会安装在 $GODI_PRFIX/doc/godi-lablgtk2/examples 下。您可以使用脚本 lablgtk2 从命令行查看它们的运行情况,例如

lablgtk2 /opt/wodi32/doc/godi-lablgtk2/examples/editor.ml
lablgtk2 /opt/wodi32/doc/godi-lablgtk2/examples/text/text-demo.ml
于 2013-04-29T19:46:26.350 回答