qt_rtmp_demo/utils/screenshotwidget.h

67 lines
1.5 KiB
C
Raw Normal View History

2024-06-16 16:14:06 +00:00
#ifndef SCREENSHOTWIDGET_H
#define SCREENSHOTWIDGET_H
#include <QApplication>
#include <QCoreApplication>
#include <QWidget>
#include <QMouseEvent>
#include <QPainter>
#include <QFileDialog>
#include <QMessageBox>
#include <QTimer>
#include <QScreen>
#include <QDesktopWidget>
#include <QPen>
#include <QPushButton>
#include <QDateTime>
#include <QTime>
#include <QPixmap>
#include <QThread>
#include <QDebug>
#include <QLabel>
class ScreenShotWidget : public QWidget
{
Q_OBJECT
Q_SIGNALS:
void rect_selected(QRect rect);
public:
ScreenShotWidget(QWidget *parent = nullptr);
protected:
//<2F><><EFBFBD><EFBFBD><EAB0B4><EFBFBD>¼<EFBFBD>
void mousePressEvent(QMouseEvent *event) override;
//<2F><><EFBFBD><EFBFBD><EFBFBD>ƶ<EFBFBD><C6B6>¼<EFBFBD>
void mouseMoveEvent(QMouseEvent *event) override;
//<2F><><EFBFBD><EFBFBD><EFBFBD>ɿ<EFBFBD><C9BF>¼<EFBFBD>
void mouseReleaseEvent(QMouseEvent *event) override;
//<2F><><EFBFBD>Ʊ߿<C6B1><DFBF>¼<EFBFBD>
void paintEvent(QPaintEvent *event) override;
private slots:
void on_buttonSave_Clicked();
void on_buttonCancel_Clicked();
private:
QPoint getPointInWhichSqure(QPoint point);
private:
QPushButton *buttonSave,*buttonCancel;
QLabel *lblHeightWidth;
QLabel *lblMagnifyGlass;
QPainter m_painter;
QPoint m_startPos,m_endPos; //<2F><><EFBFBD>ڼ<EFBFBD>¼<EFBFBD><C2BC><EFBFBD>ɵĽ<C9B5>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>
QPoint m_oldPos,m_distancePos; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ק<EFBFBD><D7A7>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>
bool m_screenshot_active;
QPoint m_topLeft;
QPoint m_topRight;
QPoint m_bottomLeft;
QPoint m_bottomRight;
QPoint m_topCenter;
QPoint m_bottomCenter;
QPoint m_leftCenter;
QPoint m_rightCenter;
int m_cursorMode;
};
#endif // SCREENSHOTWIDGET_H