everyone.我正在用 qt4 重写我的 qt5 音乐播放器。而且我无法像在声子中那样制作适当的搜索滑块。您是否有一个简单的实现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);
}
我今天遇到了同样的问题,我使用了这里介绍的方法:如何很好地将 qint64 "投射"到 QProgressBar 的 int,
关于您的解决方案,它可能在大多数情况下都运行良好,但由于 qint64 是 64 位,而 int 主要是 32 位,因此滑块的值可能会溢出。设置百分比值可能更安全。