c++ - QNX 6.5.0 抓屏或窗口 Qt C++

标签 c++ qt qnx

我需要在 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/

相关文章:

定义成员函数的 c++ 语法,它接受 int 并在类外部返回指向 in 的指针

c++ - julia Cxx 在模块中封装不同的行为

java - java或c++中的邻接矩阵来查找连接的节点

c++ - QFileDialog:保存文件时自动添加扩展名?

c++ - QProcess未知错误

apache-flex - 视频全屏显示

c - qnx中的中断服务程序?

c++ - 在 std::list 中就地创建自定义类型对象

c++ - 在项目的另一个类中使用 QTimer 及其超时事件

C 未收到来自定时器的信号