2020-04-15 02:22:08 +00:00
|
|
|
|
#ifndef VIDEOPANEL_H
|
|
|
|
|
#define VIDEOPANEL_H
|
|
|
|
|
|
|
|
|
|
/**
|
2021-09-26 01:50:09 +00:00
|
|
|
|
* 视频监控画面控件 整理:feiyangqingyun(QQ:517216493) 2019-04-11
|
2021-11-09 12:39:42 +00:00
|
|
|
|
* 1. 可设定视频通道数量。
|
|
|
|
|
* 2. 支持双击最大化再次双击还原。
|
|
|
|
|
* 3. 支持4/6/8/9/13/16/25/36/64等通道布局。
|
|
|
|
|
* 4. 内置了选中边框高亮等样式。
|
|
|
|
|
* 5. 通用的视频通道布局盒子类,方便拓展其他布局。
|
2020-04-15 02:22:08 +00:00
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
#include <QWidget>
|
|
|
|
|
|
|
|
|
|
class QMenu;
|
|
|
|
|
class QLabel;
|
|
|
|
|
class QGridLayout;
|
2021-11-09 12:39:42 +00:00
|
|
|
|
class VideoBox;
|
2020-04-15 02:22:08 +00:00
|
|
|
|
|
|
|
|
|
#ifdef quc
|
2020-12-24 10:00:09 +00:00
|
|
|
|
class Q_DECL_EXPORT VideoPanel : public QWidget
|
2020-04-15 02:22:08 +00:00
|
|
|
|
#else
|
|
|
|
|
class VideoPanel : public QWidget
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
Q_OBJECT
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
explicit VideoPanel(QWidget *parent = 0);
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
bool eventFilter(QObject *watched, QEvent *event);
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
bool videoMax; //是否最大化
|
2024-02-26 02:34:39 +00:00
|
|
|
|
int videoCount; //最大通道数
|
|
|
|
|
QString layoutType; //当前画面类型
|
2020-04-15 02:22:08 +00:00
|
|
|
|
QMenu *videoMenu; //右键菜单
|
|
|
|
|
QAction *actionFull; //全屏动作
|
|
|
|
|
QAction *actionPoll; //轮询动作
|
2021-11-09 12:39:42 +00:00
|
|
|
|
|
|
|
|
|
QGridLayout *gridLayout; //通道表格布局
|
|
|
|
|
QWidgetList widgets; //视频控件集合
|
|
|
|
|
VideoBox *videoBox; //通道布局类
|
2020-04-15 02:22:08 +00:00
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
QSize sizeHint() const;
|
|
|
|
|
QSize minimumSizeHint() const;
|
|
|
|
|
|
|
|
|
|
private slots:
|
|
|
|
|
void initControl();
|
|
|
|
|
void initForm();
|
|
|
|
|
void initMenu();
|
|
|
|
|
void full();
|
|
|
|
|
void poll();
|
|
|
|
|
|
|
|
|
|
private slots:
|
2024-02-26 02:34:39 +00:00
|
|
|
|
void playAll();
|
|
|
|
|
void snapOne();
|
|
|
|
|
void snapAll();
|
2020-04-15 02:22:08 +00:00
|
|
|
|
|
2023-12-06 11:15:52 +00:00
|
|
|
|
Q_SIGNALS:
|
2021-11-09 12:39:42 +00:00
|
|
|
|
//全屏切换信号
|
2020-04-15 02:22:08 +00:00
|
|
|
|
void fullScreen(bool full);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
#endif // VIDEOPANEL_H
|