все. Я переписываю свой музыкальный проигрыватель qt4 в qt5. И я не могу сделать правильный слайдер, как в фононе. У вас есть простой пример реализации этой части интерфейса?
UPD:
вот мой способ сделать это:
//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 в int для QProgressBar,
Что касается вашего решения, оно, вероятно, работает в большинстве случаев хорошо, но поскольку qint64 является 64-битным, а int в основном 32-битным, значение для ползунка может быть переполнено. Установка процентных значений может быть безопаснее.
Других решений пока нет …