forked from itisyang/playerdemo
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathshow.h
142 lines (121 loc) · 2.43 KB
/
show.h
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
/*
* @file displaywid.h
* @date 2018/01/07 11:11
*
* @author itisyang
* @Contact [email protected]
*
* @brief 显示控件
* @note
*/
#ifndef DISPLAY_H
#define DISPLAY_H
#include <QWidget>
#include <QMimeData>
#include <QDebug>
#include <QTimer>
#include <QDragEnterEvent>
#include <QKeyEvent>
#include <QMenu>
#include <QActionGroup>
#include <QAction>
#include "videoctl.h"
namespace Ui {
class Show;
}
class Show : public QWidget
{
Q_OBJECT
public:
Show(QWidget *parent);
~Show();
/**
* @brief 初始化
*/
bool Init();
protected:
/**
* @brief 放下事件
*
* @param event 事件指针
* @note
*/
void dropEvent(QDropEvent *event);
/**
* @brief 拖动事件
*
* @param event 事件指针
* @note
*/
void dragEnterEvent(QDragEnterEvent *event);
/**
* @brief 窗口大小变化事件
*
* @param event 事件指针
* @note
*/
void resizeEvent(QResizeEvent *event);
/**
* @brief 按键事件
*
* @param
* @return
* @note
*/
void keyReleaseEvent(QKeyEvent *event);
void mousePressEvent(QMouseEvent *event);
//void contextMenuEvent(QContextMenuEvent* event);
public:
/**
* @brief 播放
*
* @param strFile 文件名
* @note
*/
void OnPlay(QString strFile);
void OnStopFinished();
/**
* @brief 调整显示画面的宽高,使画面保持原比例
*
* @param nFrameWidth 宽
* @param nFrameHeight 高
* @return
* @note
*/
void OnFrameDimensionsChanged(int nFrameWidth, int nFrameHeight);
private:
/**
* @brief 显示信息
*
* @param strMsg 信息内容
* @note
*/
void OnDisplayMsg(QString strMsg);
void OnTimerShowCursorUpdate();
void OnActionsTriggered(QAction *action);
private:
/**
* @brief 连接信号槽
*/
bool ConnectSignalSlots();
void ChangeShow();
signals:
void SigOpenFile(QString strFileName);///< 增加视频文件
void SigPlay(QString strFile); ///<播放
void SigFullScreen();//全屏播放
void SigPlayOrPause();
void SigStop();
void SigShowMenu();
void SigSeekForward();
void SigSeekBack();
void SigAddVolume();
void SigSubVolume();
private:
Ui::Show *ui;
int m_nLastFrameWidth; ///< 记录视频宽高
int m_nLastFrameHeight;
QTimer timerShowCursor;
QMenu m_stMenu;
QActionGroup m_stActionGroup;
};
#endif // DISPLAY_H