问题描述
我无法捕获使用屏幕投射连接的显示器的屏幕截图。
QApplication::screens().size();仅返回 1 个连接的显示器。
如何检测?
解决方法
见this example about screenshot
首先,你应该像这样定义一个 QScreen 对象
QScreen *screen = QGuiApplication::primaryScreen();
然后
if (const QWindow *window = windowHandle())
{
screen = window->screen();
}
if (!screen)
{
return;
}
那么你应该在你的标题(.h)中有 QPixmap 对象,比如 QPixmap _pixmap;
最后,你应该写这个
_pixmap = screen->grabWindow(QApplication::desktop()->winId());
当您有另一个显示器时,这意味着您有 2 个窗口 ID。 当使用 QApplication::desktop()->winId() 时,它会同时得到它们。