桌面截图:
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QScreen>
#include <QDesktopWidget>
#include <QPixmap>
#include <QPainter>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_getDesktopBtn_clicked()
{
QScreen *screen = QGuiApplication::primaryScreen();
if (screen) {
QPixmap originalmap = screen->grabWindow(0);
originalmap.save(QCoreApplication::applicationDirPath()+"\\1.jpg");
}
}
获取指定窗口位置的图片
方法一:
QDesktopWidget *pDesktopWidget = QApplication::desktop();
QScreen *pScreen = QGuiApplication::primaryScreen();
QPixmap pixmap = pScreen->grabWindow(pDesktopWidget->winId(),0,0,500,500);
pixmap.save(QCoreApplication::applicationDirPath()+"\\2.jpg");
QScreen *pScreent = QGuiApplication::primaryScreen() ;
QPixmap pixmap = pScreent->grabWindow(ui->label->winId(),0,0,20,40);
pixmap.save(QCoreApplication::applicationDirPath()+"\\3.jpg");
方法二:
QPixmap pixmap = ui->label->grab(QRect(0,0,100,200));
pixmap.save(QCoreApplication::applicationDirPath()+"\\4.jpg");