QT截屏工具

直接上项目:

项目框架:

 m_rect.h

#ifndef M_RECT_H
#define M_RECT_H

#include <QMainWindow>
#include <QDesktopWidget>
#include <QMenu>//右键菜单
#include <QWidget>
#include <QMouseEvent>
#include <QPainter>//画笔
#include <QPixmap>
#include <QDebug>
#include <QApplication>
#include <QClipboard>
#include <QFileDialog>
#include <QShowEvent>
#include <QMessageBox>
namespace Ui {
class M_rect;
}

class M_rect : public QMainWindow
{
    Q_OBJECT
public slots:
     void save();
     void copy();
protected:
    void mousePressEvent(QMouseEvent *e);//鼠标按下事件
    void mouseMoveEvent(QMouseEvent *e);//鼠标移动事件
    void mouseReleaseEvent(QMouseEvent *e);//鼠标释放(松开)事件
    void paintEvent(QPaintEvent *);//画图事件
    void showEvent(QShowEvent *);//窗体show事件
    void contextMenuEvent(QContextMenuEvent *);
public:
    explicit M_rect(QWidget *parent = nullptr);
    ~M_rect();
    QPixmap fullScreen;//全屏截图
    QPoint getBeginPos();//获取鼠标的起始位置
    QPoint getEndPos();//获取鼠标的结束位置
    void setBeginPos(QPoint p);//设置鼠标的起始位置
    void setEndPos(QPoint p);//设置鼠标的结束位置
private:
    Ui::M_rect *ui;
    QPoint beginPos;//记录鼠标的起始位置
    QPoint endPos;//记录鼠标的结束位置
    bool leftPres;//记录鼠标左键是否按下,按下为true
    QRect * rect; //矩形截图区域
    QMenu *menu;
signals:
    void Return(QPixmap);

};


#endif // M_RECT_H

screenshot.h

#ifndef SCREENSHOT_H
#define SCREENSHOT_H

#include <QMainWindow>
#include<QFileDialog>
#include <QPixmap>
#include <QDesktopWidget>
#include <QMessageBox>
#include<synchapi.h>//sleep头文件
#include <QClipboard>
#include <QClipboard>
#include"m_rect.h"

QT_BEGIN_NAMESPACE
namespace Ui { class screenshot; }
QT_END_NAMESPACE

class screenshot : public QMainWindow
{
    Q_OBJECT

public:
    screenshot(QWidget *parent = nullptr);
    ~screenshot();

    QRect getRect(const QPoint &beginPoint, const QPoint &endPoint);
    QPixmap   fullScreen;

private slots:
    void on_close_clicked();
    void on_newpicture_clicked();
    void on_preservation_clicked();
    void on_checkBox_stateChanged(int arg1);
    void on_pushButton_clicked();
    void on_copy_clicked();

private:
  
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值