我试图弄清楚如何在图形小部件中实例化多行文本框。 LablGTK2在文档方面似乎非常有限,并且API很少开始看起来像我想要的东西。
我已开始针对Lablgtk2文档https://developer.gnome.org/gtk3/stable/gtkobjects.html交叉引用原始GTK2文档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& amp;设置多行文本Lablgtk / lablgtk2?或者更好的教程建议,以显示开发多行文本框(这是任何基于GUI的程序中非常重要的功能)?理想情况下,我想将文本输入连接到这个多行文本到我编写的OCaml模块,该模块将处理该文本,然后GUI将在GUI上显示处理结果。任何帮助将不胜感激。
答案 0 :(得分: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 ()
答案 1 :(得分:1)
你说文档非常稀疏是正确的。因此,我们必须通过互相学习来学习。像猴子......
我打赌ocamleditor
应该包含如何执行此操作的示例:https://forge.ocamlcore.org/projects/ocamleditor/
此外,OCP正在创建一个简单的OCaml编辑器,它也应该有用:https://github.com/OCamlPro/ocp-edit-simple
答案 2 :(得分: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