c – qslider slider释放值
作者:互联网
我想制作一个媒体播放器.使用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中的“value”变量进行搜索
void MainWindow::searchSliderReleased()
{
std::cout<<"Released: Slider value"<<value<<std::endl;
emit search(value);//seek the track to location value
}
但是上述技术的问题是,sliderMoved信号没有给出滑块被丢弃的值,但它给出了滑块移动位置的位置.如何获取滑块掉落的值?
解决方法:
您可以使用滑块的valueChanged(int)信号,但设置标志
ui->horizontalSlider->setTracking(false);
标签:c,qt,qslider 来源: https://codeday.me/bug/20190826/1728390.html