Реализация Сикслидера в qt5

все. Я переписываю свой музыкальный проигрыватель 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);
}

0

Решение

Я столкнулся с той же проблемой сегодня, и я использовал метод, представленный здесь: Как красиво "бросать" qint64 в int для QProgressBar,

Что касается вашего решения, оно, вероятно, работает в большинстве случаев хорошо, но поскольку qint64 является 64-битным, а int в основном 32-битным, значение для ползунка может быть переполнено. Установка процентных значений может быть безопаснее.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]