Qt5和Qt4的简单截屏

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()代替。默认为主屏幕。

参考链接:

猜你喜欢

转载自blog.csdn.net/qq_40194498/article/details/80977366