我正在使用Lablgtk2。 我想通过使用GnoCanvas模块显示500x400窗口,所以我写如下。
let window = GWindow.window ~show:true ~width:500 ~height:400 () in
let canvas = GnoCanvas.canvas ~width:500 ~height:400 () in
ignore(GnoCanvas.rect
~props:[`FILL_COLOR "#ffffff";`X1 0.;`Y1 0.;`X2 500.;`Y2 400.]
canvas#root);
window#add (canvas#coerce);
window#show ();
GMain.Main.main ()
我认为显示了500x400的白色窗口,但是显示500x400窗口,右下方有300x250的白色矩形。 我认为画布的坐标(0,0)是窗口处的坐标(200,150)。 我无法理解为什么它应该如此以及代码有什么问题。 请告诉我收集代码。
答案 0 :(得分:1)
Gnome canvas使用three coordinate systems。为了确保世界坐标系与像素一一对应,请考虑使用这两种画布方法:set_pixels_per_unit
和set_scroll_region
。我没有对它进行测试,但执行以下操作可以提供帮助:
canvas#set_pixels_per_unit 1.0;
canvas#set_scroll_region 0 0 500 400;