Halcon视觉之家-Halcon视觉技术论坛

 找回密码
 会员注册

QQ登录

只需一步,快速开始

扫一扫,微信登录

查看: 591|回复: 3

[已解决] DispObj问题

[复制链接]

该用户从未签到

18

主题

34

帖子

89

积分

Rank: 1

积分
89
发表于 2022-3-2 09:51:19 | 显示全部楼层 |阅读模式

51Halcon诚邀您的加入,专注于机器视觉开发与应用技术,我们一直都在努力!

您需要 登录 才可以下载或查看,没有账号?会员注册

x
本帖最后由 李明 于 2022-3-2 15:39 编辑

在C++中的代码:
  1. HObject  ho_Circle, ho_Circle1, ho_RegionDifference;
  2. HTuple  hv_WindowHandle;
  3. SetWindowAttr("background_color","black");
  4. OpenWindow(10,10,400,400,0,"visible","",&hv_WindowHandle);
  5. HDevWindowStack::Push(hv_WindowHandle);

  6. GenCircle(&ho_Circle, 200, 200, 30);
  7. GenCircle(&ho_Circle1, 200, 200, 100);

  8. Difference(ho_Circle1, ho_Circle, &ho_RegionDifference);

  9. if (HDevWindowStack::IsOpen())
  10.       DispObj(ho_RegionDifference, HDevWindowStack::GetActive());
复制代码

我的问题 :ho_RegionDifference区域在窗口中没有显示  ??

签到天数: 14 天

连续签到: 1 天

[LV.3]偶尔看看II

231

主题

1064

帖子

6956

积分

Rank: 9

积分
6956

热心会员突出贡献切换助手验证会员最佳新人

发表于 2022-3-2 10:24:47 | 显示全部楼层
如果你要使用它自带的窗口栈(HDevWindowStack)管理窗口,那么程序里面使用,你显示任何图形之前都是需要显式激活窗口(HDevWindowStack::SetActive(hv_WindowHandle) )。否则HDevWindowStack::GetActive()这句代码无法获取你当前有效的窗口,无法显示图形。

我的建议是,你把窗口句柄保存下来,直接使用,去掉以下这种频繁切换窗口的代码(这种适合于HDevelop里面使用):
HDevWindowStack::Push(hv_WindowHandle);
if (HDevWindowStack::IsOpen())
HDevWindowStack::GetActive() 把这个换成直接换成窗口句柄

该用户从未签到

18

主题

34

帖子

89

积分

Rank: 1

积分
89
 楼主| 发表于 2022-3-2 14:32:13 | 显示全部楼层
本帖最后由 李明 于 2022-3-2 14:34 编辑
  1.     HObject  ho_Circle, ho_Circle1, ho_RegionDifference;
  2.     HTuple  hv_WindowHandle;
  3.     SetWindowAttr("background_color","black");
  4.     OpenWindow(10,10,400,400,0,"visible","",&hv_WindowHandle);

  5.     GenCircle(&ho_Circle, 200, 200, 30);
  6.     GenCircle(&ho_Circle1, 200, 200, 100);

  7.     Difference(ho_Circle1, ho_Circle, &ho_RegionDifference);

  8.     DispObj(ho_RegionDifference, hv_WindowHandle);
复制代码


这样窗口中还是没有显示区域  ??注意在halcon中可以显示,在C++中(qt5)中没有显示   ?

签到天数: 72 天

连续签到: 3 天

[LV.6]常住居民II

446

主题

1877

帖子

8560

积分

Rank: 9

积分
8560

突出贡献优秀版主荣誉管理论坛元老切换助手验证会员最佳新人

发表于 2022-3-3 09:07:04 | 显示全部楼层
李明 发表于 2022-3-2 14:32
这样窗口中还是没有显示区域  ??注意在halcon中可以显示,在C++中(qt5)中没有显示   ?
...

默认窗口是有很多属性没有设置,包括缓存大小,你可以先读取一张大图,然后设置颜色就可以了。
无效附件更新 权限提升操作 删帖申请 举报以及其他需要帮助请加入QQ群:214663141 广告位招商 有意者联系
您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

视觉培训招生
论坛下线通知X

建议您使用Chrome、Firefox、Edge、360、IE10以上等主流浏览器浏览本论坛

算子查询| 申请友链| 小黑屋| 手机版| Archiver| 业务支持|

© 2015-2021 Halcon视觉之家  X3.4  粤ICP备15095995号 粤公网安备44030602000670号

本站已安全运行:

快速回复 返回顶部 返回列表