感谢查看我的问题!
我目前正在使用Qt C++开发一个跨平台项目。由于我是新手,所以被要求设置从菜单结构中获取屏幕截图的功能。但我在伴侣应用程序的Android版本上遇到了问题。
简单来说,这是一款软件,它将主机PC屏幕的内容发送到我们的应用程序,我已经能够在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是正确的轨迹?非常感谢任何帮助!