基于qt,msvc2017-64bits,ffmpeg.opengl的播放器
zhangmeng
2021-03-03 4a6d9312cc1c9d62d66c4def71246d9faae29edb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
/**
 * Ò¶º£»Ô
 * QQȺ121376426
 * http://blog.yundiantech.com/
 */
 
#ifndef DRAGABLEWIDGET_H
#define DRAGABLEWIDGET_H
 
#include <QWidget>
#include <QTimer>
 
namespace Ui {
class DragAbleWidget;
}
 
//Êó±êʵÏָı䴰¿Ú´óС
#define PADDING 6
enum Direction { UP=0, DOWN, LEFT, RIGHT, LEFTTOP, LEFTBOTTOM, RIGHTBOTTOM, RIGHTTOP, NONE };
 
 
class DragAbleWidget : public QWidget
{
    Q_OBJECT
 
public:
    explicit DragAbleWidget(QWidget *parent = 0);
    ~DragAbleWidget();
 
    QWidget *getContainWidget();
 
    void setTitle(QString str);
 
private:
    Ui::DragAbleWidget *ui;
 
    QTimer *mTimer;
 
    ///ÒÔÏÂÊǸı䴰Ìå´óСÏà¹Ø
    ////////
protected:
//    bool eventFilter(QObject *obj, QEvent *event);
    void mouseReleaseEvent(QMouseEvent *event);
    void mouseMoveEvent(QMouseEvent *event);
    void mousePressEvent(QMouseEvent *event);
 
private:
    bool isMax; //ÊÇ·ñ×î´ó»¯
    QRect mLocation;
 
    bool isLeftPressDown;  // ÅжÏ×ó¼üÊÇ·ñ°´ÏÂ
    QPoint dragPosition;   // ´°¿ÚÒÆ¶¯Í϶¯Ê±ÐèÒª¼ÇסµÄµã
    int dir;        // ´°¿Ú´óС¸Ä±äʱ£¬¼Ç¼¸Ä±ä·½Ïò
 
    void checkCursorDirect(const QPoint &cursorGlobalPoint);
 
    void doShowFullScreen();
    void doShowNormal();
 
    void showBorderRadius(bool isShow);
    void doChangeFullScreen();
 
private slots:
    void slotTimerTimeOut();
 
    void on_btnMenu_Close_clicked();
    void on_btnMenu_Max_clicked();
    void on_btnMenu_Min_clicked();
 
};
 
#endif // DRAGABLEWIDGET_H