我正在使用Qt-5.2和Win7。
该应用程序使用两个显示器,我想拍摄包含两个屏幕的屏幕截图。 QGuiApplication :: screens()返回两个QScreen对象的列表,当我拍摄主屏幕截图时,就可以了。但现在我需要两者的截图,所以QDesktopWidget似乎是一个不错的选择。 QDesktopWidget对象是虚拟对象,因此它处理虚拟桌面中的两个屏幕。
当我使用它时,pixmap正确生成。
QPixmap pm = some_widget->grab();
但是当我尝试使用桌面小部件时,我只得到一张灰色图像。
QPixmap pm = QApplication::desktop()->grab();
有什么想法吗?谢谢!
答案 0 :(得分:2)
我不打算使用它,因为它已经过时了,但我设法以这种方式做我想做的事:
QDesktopWidget* dw = QApplication::desktop()
QPixmap pixmap = QPixmap::grabWindow( dw->winId(), 0, 0, dw->width(), dw->height() );