解决halcon窗口闪屏问题

本文介绍了两种实现双缓存机制的方法,一种是通过创建显式和隐式窗口,并使用窗口拷贝来同步显示内容;另一种是在显示线程中通过控制刷新来实现。这两种方法都能有效避免在更新显示内容时出现的闪烁问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用双缓存机制可以避免该问题,有两种方式

方式1:

创建窗口时,创建两个窗口,一个显式窗口,一个隐式窗口,隐式窗口作为缓冲窗口,线程内一个循环周期内需要显示的东西先打印到隐式窗口中,然后通过窗口拷贝的方式,将所有结果拷贝到显式窗口中即可。

    open_window(0,0,width - 1,height- 1, (Hlong)fatherWnd, "visible", " ",&showWnd);//真实的显示窗口
    open_window(0,0,width - 1,height- 1, (Hlong)fatherWnd, "buffer", " ", &hideWnd);;//缓冲窗口

    copy_rectangle(showWnd,hideWnd, 0, 0,height- 1, width - 1, 0, 0);//窗口拷贝

方式二:

在显示线程中,通过控制窗口是否刷新来实现双缓存机制,算子set_system

while{

set_system ('flush_graphic', 'false')

disp1~

disp2~

disp3~

```````

set_system ('flush_graphic', 'true')

disp4~

}

最后一个需要显示的写在开启刷新之后,这样窗口中所有需要显示的会一次性刷新出来。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值