https://blog.csdn.net/startl/article/details/105862817
https://blog.csdn.net/u014410266/article/details/107488789
截图问题
假如windows开启了125%,150%的缩放,Qt调用grabWindow进行全屏截图就会出问题,因此,需要获取到这个125%。(其实最佳的方式是调用windows的api,但是我出于跨平台的考虑,暂时没选择系统api)
double baseDPI = 141.951; //这个是在我自己的电脑100%缩放时测试的结果,不保证其他电脑也一样
double curDPI = QGuiApplication::primaryScreen()->physicalDotsPerInch();
double dpiRatio = baseDPI / curDPI;
QScreen *screen = qApp->primaryScreen();
// QPixmap pixmap = screen->grabWindow(0);
// QPixmap pixmap = screen->grabWindow(0, 0, 0, QApplication::desktop()->width(), QApplication::desktop()->height());
QPixmap pixmap = screen->grabWindow(0,
0, 0,
QApplication::desktop()->width() * dpiRatio,
QApplication::desktop()->height() * dpiRatio);
QDir dir;
QString screenDir = "./screenShot";
if(dir.exists(screenDir) == false)
{
dir.mkpath(screenDir);
}
pixmap.save(screenDir + "/" + QDateTime::currentDateTime().toString("yyyyMMdd hhmmss.zzz.png"));