首页| 论坛| 消息

标题:Qt/C++编写视频监控系统83-自定义悬浮条信息
作者:liudianwu
日期:2024-01-13 14:06
内容:

## 一、前言
一般视频控件上会给出个悬浮条,这个悬浮条用于显示分辨率或者一些用户期望看到的信息,一般常用的信息除了分辨率以外,还有帧率、封装格式、视频解码器名称、音频解码器名称、实时码率等,由于实际的场景不一样,用户希望能过自定义勾选开启哪些信息,开启的就显示,不开启的则可以不用显示,这样也方便节约空间甚至节约CPU占用,比如实时码率大部分时候是不需要的,而计算实时码率在采集数据的时候就需要不断运算累加,需要的时候开启不需要的时候不开启,这样也能避免不必要的计算。一般默认会开启显示分辨率,这个信息非常重要,其他的用户自己选择。
视频控件采用多重基类的设计方式,最开始是AbstractVideoWidget视频基类窗体,这个基类提供给camera采集类和video采集类集成使用,悬浮条在基类中的enterEvent和leaveEvent两个鼠标移入移除信号来控制显示和隐藏。一般都是这个策略,当然也可以改成获取焦点的就一直显示,没有焦点的就不显示。由于是在基类就显示,要显示的信息只能在子类中才能获取到,所以搞个虚拟的函数virtual QString getBannerText() const;专门用于获取悬浮条信息文本内容,子类中负责实现该函数,在获取的时候根据悬浮条信息结构体参数勾选了哪些就获取哪些,最后拼成字符串返回。
## 二、效果图

## 三、体验地址
1. 国内站点:[https://gitee.com/feiyangqingyun](https://gitee.com/feiyangqingyun)
2. 国际站点:[https://github.com/feiyangqingyun](https://github.com/feiyangqingyun)
3. 个人作品:[https://blog.csdn.net/feiyangqingyun/article/details/97565652](https://blog.csdn.net/feiyangqingyun/article/details/97565652)
4. 体验地址:[https://pan.baidu.com/s/1d7TH_GEYl5nOecuNlWJJ7g](https://pan.baidu.com/s/1d7TH_GEYl5nOecuNlWJJ7g) 提取码:01jf 文件名:bin_video_system。
## 四、相关代码
```cpp
QString VideoWidget::getBannerText() const
{
if (!getIsRunning()) {
return QString();
}
//悬浮条如果宽度不够则不显示文字信息
int width = bannerWidget->width();
if (width < 200) {
&n ..

回复 发表
主题 版块