c++ - QNX 6.5.0 抓取屏幕或窗口 Qt C++
问题描述
我需要在 QNX 6.5.0 中抓取屏幕或窗口 - 每秒 8 次。如果使用标准的低级 API 函数PgReadScreen(),对于分辨率屏幕 1920x1080(24 位)它非常慢...当创建上下文 PdCreateDirectContext() 时,驱动程序会阻止所有其他绘画。它会冻结屏幕几秒钟。
我也查看了这些区域,但据我了解,它们不包含窗口的图形数据?
使用功能减少的 Qt 5.7.1。例如,函数grabWindow()未实现。
好主意:使用小部件的render()函数,但有些对象......例如:组合框列表也是小部件。我也得跟着画。
有任何想法吗?
解决方案
抓窗户真的很简单。顶级QWidget
( widget.isWindow()==true
) 由QImage
后备存储支持。获取它不需要重新绘制或调用 OS API。这个答案有一个有效的,大部分完整但简单的实现这个想法。只要使用光栅后端,它就应该可以移植到任何平台和任何小部件。
推荐阅读
- python - 如何将字典与时间戳进行比较
- r - R:DALEX 解释无法读取目标变量数据
- angular - 在 Angular 7 中导入 PDF 文件
- python - 如何在 SQLAlchemy 更新查询中设置 Python 变量?
- c++ - 依赖于模板参数的条件存储类
- python - 遍历嵌套的 GIMP 组以检索图层数组
- c# - Missed User 属性,用于计算 asp.net 核心身份中的用户/角色数
- c++ - 调试 CMake 项目 Visual Studio Code OSX
- elasticsearch - 在 elastalert-test-rule 或执行规则时未收到警报
- ios - 如何在 iOS 应用程序和今日视图扩展程序之间共享数据