メディアプレーヤーを作ろうとしています。トラックの時間ステータスは、QSlider を使用して表示されます。ユーザーが QSlider のどこかでスライダーを離すと、トラック シークが発生するはずです。QSlider シグナルのリストを調べました。適合すると思われるのは、ユーザーがスライダーを離したときに発生するsliderReleased()ですが、スライダーがどこにあるかの最新の値を取得しません。したがって、スライダーの最新の値を取得するには、sliderMoved() と保存された参照を使用しました。
信号とスロットの接続
connect(this->ui->songProgress, SIGNAL(sliderMoved(int)), this,
SLOT(searchSliderMoved(int)));
connect(this->ui->songProgress, SIGNAL(sliderReleased()), this,
SLOT(searchSliderReleased()));
機能
void MainWindow::searchSliderMoved(int search_percent)
{
value=this->ui->songProgress->value();
std::cout<<"Moved: Slider value"<<value<<std::endl;
}
今、私は検索のためにsearchSliderReleased内で「値」変数を使用しています
void MainWindow::searchSliderReleased()
{
std::cout<<"Released: Slider value"<<value<<std::endl;
emit search(value);//seek the track to location value
}
しかし、上記の手法の問題は、sliderMoved 信号がスライダーがドロップされた場所の値を提供するのではなく、スライダーが移動された場所からの場所を提供することです。スライダーがドロップされた場所の値を取得するにはどうすればよいですか?