Сделать скриншот без одного конкретного окна программы

Мне нужно сделать обычный снимок экрана, но мне нужен способ игнорировать открытое приложение. На скриншоте должен появиться обычный фон, как будто приложение / окно не было открыто.

Другими словами, мне нужен один скриншот без окна / приложения (что заранее), но с отображением того, что находится за этим окном / приложением, не учитывая окно / ap.

Для получения скриншота у меня есть следующий код в QT/ C++:

(...)
QScreen *screen = QGuiApplication::primaryScreen();

QPixmap qPImage = screen->grabWindow(0);

QImage qImg = qPImage.toImage();//convert to qImage

(...)

Можно ли делать то, что мне нужно?

С уважением Алекс

1 ответ

Может быть, не идеальное решение, но это то, что я сделал в точно такой же ситуации:

void MainWindow::onUpdateClicked()
{
    hide();
    QTimer::singleShot(45, this, SLOT(updateScreenshotPicture()));
}

void MainWindow::updateScreenshotPicture()
{
    screenshotBorders->setPic(QPixmap::grabWindow(QApplication::desktop()->winId()));
    show();
}
Другие вопросы по тегам