Сделать скриншот без одного конкретного окна программы
Мне нужно сделать обычный снимок экрана, но мне нужен способ игнорировать открытое приложение. На скриншоте должен появиться обычный фон, как будто приложение / окно не было открыто.
Другими словами, мне нужен один скриншот без окна / приложения (что заранее), но с отображением того, что находится за этим окном / приложением, не учитывая окно / 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();
}