C++ 使用Qt中的QDesktopWidget拍摄多个屏幕的屏幕截图

C++ 使用Qt中的QDesktopWidget拍摄多个屏幕的屏幕截图,c++,qt,screenshot,C++,Qt,Screenshot,我正在使用Qt-5.2和Win7 该应用程序使用两个监视器,我想截取一个包含两个屏幕的屏幕截图。 QGuiApplication::screens()返回了两个QScreen对象的列表,当我拍摄主屏幕的屏幕截图时,它还可以。但现在我需要两者的截图,所以QDesktopWidget似乎是一个不错的选择。QDesktopWidget对象是一个虚拟对象,因此它处理虚拟桌面中的两个屏幕 当我使用它时,pixmap正确生成 QPixmap pm = some_widget->grab(); 但是当

我正在使用Qt-5.2和Win7

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

当我使用它时,pixmap正确生成

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() );