c++ - 在 Qt 中使用 QDesktopWidget 截取多个屏幕的屏幕截图

标签 c++ qt screenshot

我正在使用 Qt-5.2 和 Win7。

该应用程序使用两个显示器,我想截取包含两个屏幕的屏幕截图。 QGuiApplication::screens() 返回两个 QScreen 对象的列表,当我截取主屏幕的屏幕截图时,就可以了。但现在我需要两者的屏幕截图,所以 QDesktopWidget 似乎是一个不错的选择。 QDesktopWidget 对象是一个虚拟对象,因此它处理虚拟桌面中的两个屏幕。

当我使用它时,像素图已正确生成。

QPixmap pm = some_widget->grab();

但是当我用桌面小部件尝试这个时,我只得到一个灰色图像。

QPixmap pm = QApplication::desktop()->grab();

有什么想法吗?谢谢!

最佳答案

我不打算使用它,因为它已经过时了,但我设法用这种方式做我想做的事:

QDesktopWidget* dw = QApplication::desktop()    
QPixmap pixmap = QPixmap::grabWindow( dw->winId(), 0, 0, dw->width(), dw->height() );

关于c++ - 在 Qt 中使用 QDesktopWidget 截取多个屏幕的屏幕截图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28328653/

相关文章:

c++ - 获取显卡型号?

C++何时检查异步方法的异常

Qt 样式表错误?

c++ - 当我在 QT 中为 QInputDialog 输入密码时,如何设置背景非事件和灰色?

android - 如何在 Android fragment 中禁用屏幕捕获?

c++ - C++中的回调函数

c++ - 带有需要原始指针的 API 的 unique_ptr?

c++ - Qt - 无法找到或加载平台插件 "windows"- 但它就在那里! - 动态构建

python - Ubuntu 中使用 python 的屏幕录像机

c# - 将 key 发送到 DirectX 游戏