Qt Mediaplayer videoplayer 例子工程 Media Player Example 应用过程中出现的问题(三)qslider禁用鼠标点击跳转
Qt Mediaplayer videoplayer 例子工程 Media Player Example 应用过程中出现的问题(三)qslider禁用鼠标点击跳转
转载请标明出处
上一篇文章Qt Mediaplayer videoplayer 例子工程 Media Player Example 应用过程中出现的问题(二)qslider鼠标点击跳转说到,QSlider的鼠标点击跳转精度不高,所以索性禁用掉鼠标跳转功能。这里就不用我们之前重写的MySlider类了,直接使用QSlider即可。
首先,将slider的pagestep设为0,即鼠标点击别的位置的时候,进度条不移动。但只这样做的话,就会出现,鼠标点击一个位置,滑块会往那个位置上移动一下,再回原位。怎么实现,鼠标点击别的位置,滑块不随着移动呢?
看到有一个博客写了相关代码,但是我没有看懂后面部分的实现,如果有看懂的朋友,麻烦评论告知,谢谢。QT 禁用QSlider点击跳转
这里介绍一下博主偶然发现的一个方法。
打开Qt的另一个例子工程Video Widget Example,发现该工程的进度条无法点击跳转,刚好符合我们的要求。
查看代码发现,相关的代码如下
(1)slider定义
(2)槽函数实现
对比 Mediaplayer videoplayer例子工程中的相关代码:
(1)slider定义
(2)槽函数实现
发现,Mediaplayer videoplayer工程中的时间好像是以豪秒为单位,即都乘或者除了1000,查看Mediaplayer videoplayer的别的代码,例如positionChanged和updateDurationInfo函数也会发现乘或者除了1000。于是尝试改为以秒为单位。结果就大功告成了,具体的原因博主不是很明白,如果有知道的朋友烦请告知。
具体改动的地方如下:
m_slider->setRange(0, m_player->duration());void Player::durationChanged(qint64 duration)
{m_duration = duration;m_slider->setMaximum(m_duration);
}void Player::positionChanged(qint64 progress)
{if (!m_slider->isSliderDown())m_slider->setValue(progress);updateDurationInfo(progress);
}void Player::seek(int seconds)
{m_player->setPosition(seconds);
}void Player::updateDurationInfo(qint64 currentInfo)
{QString tStr;if (currentInfo || m_duration) {QTime currentTime((currentInfo / 3600000) % 60, (currentInfo / 60000) % 60,(currentInfo/1000) % 60, (currentInfo) % 1000);QTime totalTime((m_duration / 3600000) % 60, (m_duration / 60000) % 60,(m_duration/1000) % 60, (m_duration) % 1000);QString format = "mm:ss";if (m_duration > 3600000)format = "hh:mm:ss";tStr = currentTime.toString(format) + " / " + totalTime.toString(format);}m_labelDuration->setText(tStr);
}
Qt Mediaplayer videoplayer 例子工程 Media Player Example 应用过程中出现的问题(三)qslider禁用鼠标点击跳转相关推荐
- Qt Mediaplayer videoplayer 例子工程 Media Player Example 应用过程中出现的问题(二)qslider鼠标点击跳转
Qt Mediaplayer videoplayer 例子工程 Media Player Example 应用过程中出现的问题(二)qslider鼠标点击跳转 转载请标明出处 Qt例子工程 Media ...
- Qt Mediaplayer videoplayer 例子工程 Media Player Example 应用过程中出现的问题(一)视频无法播放
Qt 例子工程 Media Player Example 应用过程中出现的问题(一)视频无法播放 转载请标明出处. Qt播放视频报错 DirectShowPlayerService::doRender ...
- Windows Media Player控件的所有属性和方法
Windows Media Player控件的所有属性和方法----1 player.GetPlayState() 返回播放器状态(0:停止,1:连接,2:缓冲,3:播放,4:暂停,5:寻找) 网页中 ...
- Windows Media Player 无损翻录简易教程
[写在前面]前几天刚好有一个提问音乐专辑如何导入电脑,个人作为一个重度原声粉,想起来可以写一些关于这方面的介绍,其实关于无损翻录.格式转换的问题说穿了很简单,秉着不过度折腾的原则,今天做一下简要的介绍 ...
- plex媒体播放器:Plex Media Player for Mac
Plex Media Player for Mac是一款非常不错的plex媒体播放器,具有强大的实时搜索功能,可让您快速找到所需的电影,表演或歌曲,为您提供了美丽的HTPC体验和轻松的桌面媒体播放器体 ...
- 学习Windows 7:使用Windows Media Player管理音乐
If you're moving from XP to Windows 7, you'll notice that Windows Media Player 12 is a different tha ...
- 【原】基于Windows Media Player, 写自己的播放器【有源码,可下载整个工程】
最近有客户问我,怎么把Windows Media Player 嵌套在自己的项目中. 以前我在Delphi下玩过Windows Media Player,可是在Microsoft Visual Stu ...
- Qt操控Windows Media Player
一.前言 对于Windows平台,Qt有特有的模块来调用ActivityX控件 比如调用WMP,首先需要知道WMP的CLSID:{6BF52A52-394A-11D3-B153-00C04F79FAA ...
- QT实现Media Player(媒体播放器)
QT实现Media Player 项目简介 项目技术 项目展示 主要源码片段解析 获取完整项目源码传送门 项目简介 Media Player示例使用Microsoft Media Player Act ...
最新文章
- 从微信公众平台·小程序内测邀请函看应用号动向
- MySQL 处理插入重主键唯一键重复值办法
- 今天的被子照样不叠的飞鸽传书
- C#LeetCode刷题之#697-数组的度( Degree of an Array)
- marven编译时:<pre>错误: 不允许使用自关闭元素</pre>
- 海康visionmaster-客户端安装步骤
- 初学者用什么数位板好,手绘板选择注意什么?
- 鼎利5G测试软件不显示信息,鼎利软件应用 - 4G/5G - 通信人家园 - Powered by C114
- Android 水瓶动画,贝塞尔Loading
- django 设置媒体url_django-文件上传Media url的配置
- Win7虚拟机安装vs2019,亲测有效
- 视频编码中CBR和VBR的区别
- Mac OS X下Adware/malware 的简单手动排除方法
- YoutuBe 推荐系统
- PYTHON 获取邮件发送时间
- C++基础入门知识学习(通俗详细讲解)
- buildroot 修改和保存xxx_defconfig make savedconfig错误解决
- Python matplotlib绘图模块操作大全
- U盘启动快捷键查询列表
- 看别人分享的图片停不下来,还有这么有意思的网站?
热门文章
- oracle undo数据文件坏,oracle回退文件UNDOTBS01.DBF损坏的处理
- 【转载】那些极度自卑的人,后来都怎么样了?
- 如何完全卸载Android Studio (干干净净)
- 爱创课堂教你如何1分钟选好最合适你的JavaScript框架
- WordPress主题 阿里百秀 XIU v7.5
- 炫领代挂服务器地理位置,炫领代挂官方网站
- 使用winScp实现跳板机登陆内网服务器
- 中国造纸行业发展趋势与盈利前景展望报告2022-2027年
- 尚硅谷周阳_SpringCloud第二季脑图
- Writeup of Android02(android) in WhaleCTF