Qt5截屏:
需要包含头文件:#include <QScreen>
QScreen *screen = QGuiApplication::primaryScreen();
QString filePathName = "Screen-";
filePathName += QDateTime::currentDateTime().toString("yyyy-MM-dd hh-mm-ss");
filePathName += ".png";//控制图片格式的关键
//这里的png改成jpg在我这里也没有影响,但不能删掉,否则会保存失败
if(!screen->grabWindow(0).save(filePathName, "png"))
{
QMessageBox::information(this,"SCreen shot","SCreen shot false!");
}
由于Qt版本的变更,以上方法在Qt4系列版本并不适用
Qt4截屏:
QString filePathName = "Screen-";
QPixmap pixmap = QPixmap::grabWindow(QApplication::desktop()->winId());
filePathName += QDateTime::currentDateTime().toString("yyyy-MM-dd hh-mm-ss");
filePathName += ".png";
if(!pixmap.save(filePathName))
{
QMessageBox::information(this,"SCreen shot","SCreen shot false!");
}
在Qt5系列中,包含头文件#include <QDesktopWidget>
后,也可以使用这个方法,但是会提示:
static QPixmap QPixmap::grabWindow(WId, int, int, int, int) is deprecated, use QScreen::grabWindow() instead. Defaulting to primary screen.
译:QPixmap::grabWindow(WId, int, int, int)被弃用,使用QScreen::grabWindow()代替。默认为主屏幕。
参考链接: