спасибо за проверку моего вопроса!Взятие скриншотов с помощью Qt C++ на Android
В настоящее время я работаю над проектом с использованием Qt C++, который разработан как многоплатформенный. Я немного новичок в этом, поэтому меня попросили настроить возможность делать скриншоты из структуры меню, и у меня возникают проблемы с версией Android-приложения для Android.
Как краткий обзор, это немного программного обеспечения, которое отправляет содержимое экрана главного компьютера в наше приложение, и я смог сделать скриншоты в версии для Windows просто отлично, используя QScreen и QPixmap, например :
overlaywindow.cpp
{
QPixmap screenSnapData = screenGrab->currentBackground();
}
screenGrabber.cpp
{
QScreen *screen = QGuiApplication::primaryScreen();
return screen->grabWindow(QApplication::desktop()->winId());
}
к сожалению, Android, кажется, отказаться от QScreen, и с большинством предложений от прошлого Поиски Google, предлагающие теперь устаревший QPixmap :: grab(), я немного застрял.
Какая удача у меня есть есть в коде для самого меню и QWidget, но это, конечно, не без проблем!
QFile doubleCheckFile("/storage/emulated/0/Pictures/Testing/checking.png");
doubleCheckFile.open(QIODevice::ReadWrite);
QPixmap checkingPixmap = QWidget::grab();
checkingPixmap.save(&doubleCheckFile);
doubleCheckFile.close();
Этот код делает снимок экрана, но в настоящее время реализованы только на пуговицах, а не на весь экран. Я также взял «скриншот» в просто белой коробке с размерами экрана с помощью:
QDesktopWidget dw;
QWidget *screen=dw.screen();
QPixmap checkingPixmap = screen->grab();
ли кто-нибудь знает, есть ли альтернатива использованию QScreen сделать скриншот в Android, или есть ли конкретный способ заставить его работать по сравнению с Windows? Или QWidget будет правильным путем? Любая помощь очень ценится!
К сожалению, это не работает для Android версии, как это до сих пор используют QScreen, как показано со следующей ошибкой компилятора: не смог преобразовать 'QScreen :: grabWindow (WId, int, int, int, int) (0u, 0, 0, -1, -1)' из 'QPixmap' в 'QScreen' return screen-> grabWindow (0); – irrevilent