qt5中的seekslider实现
Posted
技术标签:
【中文标题】qt5中的seekslider实现【英文标题】:Seekslider realization in qt5 【发布时间】:2013-10-30 20:49:53 【问题描述】:大家。我正在用 qt5 重写我的 qt4 音乐播放器。而且我无法制作正确的搜索滑块,就像在声子中一样。你有实现这部分 UI 的简单示例吗?
更新: 这是我的方法:
//mainwindow.cpp
connect(ui->seekSlider,SIGNAL(sliderMoved(int)),music,SLOT(setPosition(int)));
connect(music,SIGNAL(newPosition(qint64)),this,SLOT(positionChanged(qint64)));
connect(music,SIGNAL(newRange(qint64)),this,SLOT(durationChanged(qint64)));
void MainWindow::positionChanged(qint64 position)
ui->seekSlider->setValue(position);
void MainWindow::durationChanged(qint64 duration)
ui->seekSlider->setRange(0,duration);
//music class realization
player = new QMediaPlayer;
connect(player,SIGNAL(positionChanged(qint64)),this,SIGNAL(newPosition(qint64)));
connect(player,SIGNAL(durationChanged(qint64)),this,SIGNAL(newRange(qint64)));
void MusicControl::setPosition(int position)
player->setPosition(position);
【问题讨论】:
【参考方案1】:我今天也遇到了同样的问题,我用了这里介绍的方法:How to nicely "cast" qint64 to int for QProgressBar,
关于您的解决方案,它可能在大多数情况下运行良好,但由于 qint64 是 64 位,而 int 主要是 32 位,滑块的值可能会溢出。设置百分比值可能更安全。
【讨论】:
以上是关于qt5中的seekslider实现的主要内容,如果未能解决你的问题,请参考以下文章