dev_open_window — 打开一个新的图形窗口。
dev_open_window( : : Row, Column, Width, Height, Background : WindowHandle)
dev_open_window 用于打开一个新的图形窗口,该窗口可用于显示图像、区域和直线等图形对象,也可用于输出文本。该窗口会自动成为活动窗口,这意味着所有输出(包括 dev_display 的输出以及运算结果的自动显示)都会重定向到此窗口。此时,激活 按钮上的指示灯会亮起。
每个图形窗口都通过其 WindowHandle 进行标识。这个逻辑编号显示在图形窗口的标题栏中,并且是某些算子(如 disp_image、disp_region、draw_circle、get_mbutton、write_string 和 set_rgb)所需的输入参数。
可以通过点击窗口边框上的 关闭
按钮、通过 可视化 菜单,或者调用 dev_close_window 来关闭图形窗口。
默认情况下,图形窗口会在画布窗口内打开。如果不需要这样,请在 HDevelop 的 窗口 菜单中选择 恢复默认布局 ->
停靠图形窗口 选项。另请参阅 “HDevelop 用户指南” 中的 “画面窗口” 部分。
参数 Row 和 Column 用于指定窗口的位置。其在画布上的参考点 (0, 0) 由一个十字标记表示。
对于浮动窗口,默认参考点是 HDevelop 主窗口的左上角。您可以更改此参考点,例如,使图形窗口的位置与屏幕的左上角对齐。要实现此操作,请打开 HDevelop 参数选择,并在 一般选项 下选择所需的 坐标原点。
此外,您还可以通过
窗口打开偏移 设置调整窗口位置。这些偏移量值将分别加到行和列索引上。另请参阅 “HDevelop 用户指南” 中的“菜单 窗口打开偏移”。
创建的图形窗口的背景色将设置为在 Background 中指定的颜色。该参数不适用于算子 open_window。在该算子中,可通过预先调用
set_window_attr(::'background_color',Background:) 来实现相同的效果。
默认情况下,图形窗口(视口)中可见的图像区域设置为:图像显示时不进行裁剪,并完全适配窗口。当程序重置后、加载新程序时,或者当前图像的尺寸与之前显示的图像不同时,系统会根据此规则将图像区域调整为适配窗口大小。窗口大小不会自动调整,因此,如果图像的宽高比与窗口不同,图像会发生变形以适应窗口。这可以通过 窗口大小 菜单进行更改。
可见图像区域可通过滚动鼠标滚轮、使用 移动 或 缩放 模式、通过 图像大小 菜单、借助 可视化参数 对话框中的 缩放 选项卡,或使用算子 dev_set_part 进行交互式调整。
图形窗口的显示参数可通过其右键菜单、可视化 菜单、可视化参数 对话框,或相应的 HDevelop 算子(如 dev_set_color、dev_set_line_width、dev_set_draw)进行设置。根据 立即应用 参数选择的设置,参数更改将应用于最后显示的对象,或从现在起应用于所有后续对象。与标准的 HALCON 窗口算子不同,新设置也会应用于所有新创建的图形窗口。
每个图形窗口都会管理一个历史记录,其中包含自上次清除操作或显示完整图像以来已显示或更改的
对象和
显示参数。
当窗口被触发重绘时(例如在更改窗口大小之后),将使用此历史记录来重建完整的窗口内容。使用 HALCON 算子(如 disp_image 或 disp_region)、文本(write_string)或几何对象(disp_line、disp_circle等)显示的其他图标输出不属于历史记录的一部分,因此无法重新绘制。只有通过 HDevelop 算子 dev_display 或 HDevelop 操作(如双击图标)显示的图像、区域 和 XLD 对象类才属于历史记录的一部分。
点击 清除 按钮可清空图形窗口内容及窗口历史记录。也可通过使用算子 dev_clear_window 实现此功能。此操作不会影响当前的显示参数。
有关底层 HALCON 窗口的更多信息,请参阅 open_window。有关图形窗口的更多信息,请查阅 “HDevelop 用户指南”。
使用 HDevelop 的代码导出功能时,为该算子生成的代码的行为可能与相关的 HALCON 算子有所不同。有关将 HDevelop 图形算子导出为不同编程语言的代码的详细说明,请参阅 “HDevelop 用户指南” 中的 代码导出 ->
代码生成的通用方面
-> 图形窗口 一章。
Row (输入控制) rectangle.origin.y → (integer)
左上角的行索引。
默认值: 0
值范围:
0
≤
Row
最小增量: 1
建议增量: 1
Column (输入控制) rectangle.origin.x → (integer)
左上角的列索引。
默认值: 0
值范围:
0
≤
Column
最小增量: 1
建议增量: 1
Width (输入控制) rectangle.extent.x → (integer)
窗口的宽度。
默认值: 512
最小增量: 1
建议增量: 1
限制:
Width > 0 || Width == -1
Height (输入控制) rectangle.extent.y → (integer)
窗口的高度。
默认值: 512
最小增量: 1
建议增量: 1
限制:
Height > 0 || Height == -1
Background (输入控制) integer → (integer / string)
新窗口的背景颜色。
默认值: 'black'
WindowHandle (输出控制) window → (handle)
窗口句柄。
dev_close_window ()
read_image (For5, 'for5')
get_image_size (For5, Width, Height)
dev_open_window (0, 0, Width, Height, 'black', WindowHandle)
dev_display (For5)
dev_set_lut ('rainbow')
dev_display (For5)
stop ()
dev_set_lut ('default')
dev_display (For5)
stop ()
dev_set_part (100, 100, 300, 300)
dev_display (For5)
如果指定参数的值正确,dev_open_window 返回 2 (H_MSG_TRUE)。否则,将抛出一个异常并返回错误代码。
dev_display,
dev_set_lut,
dev_set_color,
dev_set_draw,
dev_set_part
基础