加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
screenshot.h 2.57 KB
一键复制 编辑 原始数据 按行查看 历史
Cloud4Life 提交于 2013-10-16 08:40 . 增加源代码,首次提交。
#ifndef SCREEN_H
#define SCREEN_H
#include <QWidget>
#include <QEvent>
#include <QMenu>
#include <QPixmap>
#include <QApplication>
#include <QDesktopWidget>
#include <QSize>
#include <QPainter>
#include <QKeyEvent>
#include <QPoint>
#include <QDateTime>
#include <QFileDialog>
#include <QMessageBox>
#include <QClipboard>
#include <time.h>
#include <3rdparty/qxtglobalshortcut.h>
#include <boost/make_shared.hpp>
#include <boost/shared_ptr.hpp>
#define MAX(a,b) \
((a) > (b) ? (a) : (b))
#define MIN(a,b) \
((a) < (b) ? (a) : (b))
struct Box {
QPoint startP;
QPoint endP;
};
class ScreenShot : public QWidget {
Q_OBJECT
public:
typedef boost::shared_ptr<QPixmap> Pixmap_ptr;
typedef boost::shared_ptr<QxtGlobalShortcut> QxtGlobalShortcut_ptr;
typedef boost::shared_ptr<QMenu> Menu_ptr;
typedef boost::shared_ptr<QAction> Action_ptr;
ScreenShot(QWidget *parent = 0);
bool Maxpoint(const QPoint &p1,const QPoint&p2);
protected:
void paintEvent(QPaintEvent *);
void keyPressEvent ( QKeyEvent * event );
void hideEvent ( QHideEvent * );
void mouseMoveEvent ( QMouseEvent * event ) ;
void mousePressEvent ( QMouseEvent * event );
void mouseReleaseEvent ( QMouseEvent * event );
private:
//正常屏幕与朦胧屏幕
Pixmap_ptr screen, fogscreen;
//待绘画的盒子
struct Box box;
//定义 0 --- 左上角
//定义 1 --- 右上角
//定义 2 --- 右下角
//定义 3 --- 左下角
//定义 4 --- 中间截图区域
//其他 5
int area ;
//截图框,移动的图形框,绘画截图框
QRect drawBox;
//全局快捷键
QxtGlobalShortcut_ptr shortcut;
//基础方格
QVector<QRect> rects;
//提示线
QVector<QLine> tiplines;
//标志
quint8 flags;
//鼠标按下的位置,用来移动窗体
QPoint mouseP;
//菜单
Menu_ptr menu;
//菜单动作
Action_ptr action_about;
Action_ptr action_shot;
Action_ptr action_exit;
Action_ptr action_help;
Action_ptr action_cut;
//蒙板初始化
void fogInit();
//判断鼠标位于哪块区域
int judgeMouseArea(const QPoint &p);
//数据初始化
void dataInit();
//初始化菜单
void initMenu();
public slots:
//保存图片
void savePic();
//快速保存图片在桌面
void fastsavePic();
//保存截图到剪切板
void saveClipboard();
//关于
void slot_about();
//帮助
void slot_help();
private slots:
//快捷键调用槽函数
void slotwork();
};
#endif // SCREEN_H
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化