作者:丁冬,华清远见嵌入式学院讲师。
使用Qt 来开发一个屏幕录像程序,需要使用到QPixmap 来保存图片,类似于早期电影,播放一样,每一个帧都被保存为一个图片,最后使用windows 自带的工具来合成一个视频。
如果需要使用到获得当前帧,那么就需要使用到一个定时器,下面的代码中包含了针对于一个定时器的编程,程序完成的功能是开启定时器,并没有关闭,读者有兴趣可以创建一个类内可见的定时器,使得多个部件可以控制。
这个例子是从屏幕截图程序变化过来,所以在最后使用的是按钮保存的效果。
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QTimer>
#include <QPixmap>
#include <QDesktopWidget>
#include <QFileDialog>
#include <QDir>
#include <QDateTime>
#include <QtDebug>
包含的头文件,其中最重要的是QDesktopService. 用来获得当前屏幕的截图 。每一个 屏幕都可以被看作是具有特定id 的窗口,想获得当前窗口就必须要制定当前的winId ,程序当中是使用QApplicaiton::desktop()->winId() 来获得。
下面是设计的图形用户界面:
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow {
Q_OBJECT
public:
MainWindow(QWidget *parent = 0);
~MainWindow();