我需要在 QNX 6.5.0 中抓取屏幕或窗口 - 每秒 8 次。如果使用标准的低级 API 函数 PgReadScreen(),对于分辨率为 1920x1080(24 位)的屏幕,它非常慢……当创建上下文 PdCreateDirectContext() 时,驱动程序会阻止所有其他绘制。它会使屏幕卡住几秒钟。
我也看了区域,但是据我了解,它们不包含窗口的图形数据?
使用的 Qt 5.7.1 功能有所减少。例如,函数 grabWindow() 未实现。
好主意:使用小部件的render() 函数,但是一些对象...例如:comboBox 的列表也是小部件。我也要跟着画。
有什么想法吗?
最佳答案
抓取窗口非常简单。顶级 QWidget
(widget.isWindow()==true
) 由 QImage
后备存储支持。抓取它不需要重新绘制或调用 OS API。 This answer有一个有效的,大部分完整但简单的实现这个想法。只要使用栅格后端,它就应该可以移植到任何平台和任何小部件。
关于c++ - QNX 6.5.0 抓屏或窗口 Qt C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53781646/