其他分享
首页 > 其他分享> > c – qslider slider释放值

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