基本信息
源码名称:视频监控控件源码
源码大小:0.01M
文件格式:.rar
开发语言:C/C++
更新时间:2021-02-06
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 4 元 
   源码介绍


 * 通用视频播放控件
 * 1. 可设置边框大小
 * 2. 可设置边框颜色
 * 3. 可设置两路OSD标签
 * 4. 可设置是否绘制OSD标签
 * 5. 可设置标签文本或图片
 * 6. 可设置OSD位置 左上角 左下角 右上角 右下角
 * 7. 可设置OSD风格 文本 日期 时间 日期时间 图片
 * 8. 自定义半透明悬浮窗体,一排按钮
 * 9. 悬浮按钮可自定义设置,包括背景颜色 按下颜色
 * 10. 发送信号通知单击了哪个悬浮按钮
 * 11. 能够识别拖进来的文件,通知url
 * 12. 提供open close pause等接口



VideoWidget::VideoWidget(QWidget *parent) : QWidget(parent)
{
 //设置强焦点
 setFocusPolicy(Qt::StrongFocus);
 //设置支持拖放
 setAcceptDrops(true);

 //定时器校验视频
 timerCheck = new QTimer(this);
 timerCheck->setInterval(10 * 1000);
 connect(timerCheck, SIGNAL(timeout()), this, SLOT(checkVideo()));

 image = QImage();
 copyImage = false;
 checkLive = true;
 drawImage = true;
 fillImage = true;

 flowEnable = false;
 flowBgColor = "#000000";
 flowPressColor = "#5EC7D9";

 timeout = 20;
 borderWidth = 5;
 borderColor = "#000000";
 focusColor = "#22A3A9";
 bgText = "实时视频";
 bgImage = QImage();

 osd1Visible = false;
 osd1FontSize = 12;
 osd1Text = "时间";
 osd1Color = "#FF0000";
 osd1Image = QImage();
 osd1Format = OSDFormat_DateTime;
 osd1Position = OSDPosition_Right_Top;

 osd2Visible = false;
 osd2FontSize = 12;
 osd2Text = "通道名称";
 osd2Color = "#FF0000";
 osd2Image = QImage();
 osd2Format = OSDFormat_Text;
 osd2Position = OSDPosition_Left_Bottom;

 //初始化解码线程
 this->initThread();
 //初始化悬浮条
 this->initFlowPanel();
 //初始化悬浮条样式
 this->initFlowStyle();
}

void VideoWidget::initThread()
{

}

void VideoWidget::initFlowPanel()
{
 //顶部工具栏,默认隐藏,鼠标移入显示移除隐藏
 flowPanel = new QWidget(this);
 flowPanel->setObjectName("flowPanel");
 flowPanel->setVisible(false);

 //用布局顶住,左侧弹簧
 QHBoxLayout *layout = new QHBoxLayout;
 layout->setSpacing(2);
 layout->setMargin(0);
 layout->addStretch();
 flowPanel->setLayout(layout);

 //按钮集合名称,如果需要新增按钮则在这里增加即可
 QList<QString> btns;
 btns << "btnFlowVideo" << "btnFlowSnap" << "btnFlowSound" << "btnFlowAlarm" << "btnFlowClose";