可以抓取出屏幕的截圖並保存成圖片
屏幕的監控,屏幕錄製
1,界面設計
2,頭文件
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QTimer>
#include <QPixmap>
#include <QDesktopWidget>
#include <QMessageBox>
#include <QFileDialog>
#include <QContextMenuEvent>
#include <QMenu>
#include <QAction>
#include <QCursor>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
protected:
void ContextMenuEvent(QContextMenuEvent *event);
private slots:
void on_pushButton_7_clicked();
void shotScreenSlot();
void on_pushButton_6_clicked();
private:
Ui::MainWindow *ui;
QTimer *timer;
QPixmap pixmap;
};
#endif // MAINWINDOW_H
3,源文件
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QFileDialog>
#include <QDesktopServices>
#include <QClipboard>
#include <QDebug>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
ui->spinBox->setValue(3);
}
MainWindow::~MainWindow()
{
delete ui;
}
//截圖實現
void MainWindow::on_pushButton_7_clicked()
{
if(ui->checkBox->isChecked())
{
//this->hide(); //隱藏窗口
this->timer=new QTimer;
connect(this->timer,SIGNAL(timeout()),
this,SLOT(shotScreenSlot()));
this->timer->start(1000/24);
}
else
{
qApp->beep(); //泵的一聲
}
}
void MainWindow::shotScreenSlot()
{
this->pixmap=QPixmap::grabWindow(QApplication::desktop()->winId());
ui->label->setPixmap(this->pixmap.scaled(ui->label->size()));
//this->show();
//QClipboard *clipboard = QApplication::clipboard();
// clipboard->setPixmap(pixmap);
// this->timer->stop();
}
//保存截圖
void MainWindow::on_pushButton_6_clicked()
{
QString fileName=QFileDialog::getSaveFileName(this,
"Save File",QStandardPaths::writableLocation(QStandardPaths::PicturesLocation));
this->pixmap.save(fileName);
}
//右鍵點擊事件
void MainWindow::ContextMenuEvent(QContextMenuEvent *event)
{
/*
QMenu *menu=new QMenu(this);
QAction *action=new QAction(this);
connect(action,SIGNAL(triggered()),this,SLOT(on_pushButton_6_clicked()));
action->setText("Save As");
menu->addAction(action);
menu->exec(QCursor::pos());
*/
}
源代碼資料
屏幕錄製源代碼
博文索引 持續更新中。。。