问题出处:
当现实图像变量语句与鼠标等事件绑定时,频繁刷新图像界面,会出现窗口闪烁的问题。
解决办法:
可以按照例程 median_interative.hdev 例程中while循环每次都刷新图像窗口,但是不会出现闪烁问题。很流畅。原因就在
- set_system (‘flush_graphic’, ‘false’)
- set_system (‘flush_graphic’, ‘true’)
这两句算子。
方法是将需要刷新的变量语句,放在这两句之间,先是停止更新界面,生成变量后,在一起更新界面。
注意的是 在 set_system (‘flush_graphic’, ‘true’)之后需要再加一个能刷新界面的语句,可以显示一个不可见的目标。比如 - write_string (WindowHandle, ‘’)
具体效果可以将这两句算子注释掉,或者将之后的write_string算子注释掉。即可看到效果。
注释掉set_system两句,会出现闪烁问题。
注释掉write_string这句,会出现不刷新问题。
另外 Halcon算子中 给出的解释是
在每个HALCON操作创建图形输出之后,将执行刷新操作,以便立即在屏幕上显示数据。 例如,如果所有操作都是在鼠标的帮助下完成的,则并非所有程序都需要这样做。 在这种情况下,可以将“ flush_graphic”设置为“ false”以改善运行时间。 请注意,此参数在类Unix系统上不起作用,因为在那里,窗口管理器会自动刷新显示缓冲区。