我試圖製作一個媒體播放器。軌道的時間狀態使用QSlider顯示。當用戶在QSlider的某處釋放滑塊時,應該發生追蹤查找。我看了一下QSlider信號列表。似乎適合的是sliderReleased(),當用戶釋放滑塊時會發生這種情況,但它不會獲得滑塊所在位置的最新值。所以爲了得到滑塊的最新值,我使用了sliderMoved()和存儲引用。qslider sliderReleaseased value
信號和槽連接
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信號不會給出滑塊掉落的值,但是它給出滑塊移動的位置。如何獲得滑塊掉落的值?
[文檔](http://qt-project.org/doc/qt-4.8/qabstractslider.html#sliderMoved)表示'sliderMoved'信號發出滑塊的新值。嘗試在'searchSliderMoved'內執行'value = search_percent',而不是像當前那樣查詢小部件。 – tmpearce
是的,我試了一下,但有這個問題,它不斷髮送新的值,即使當用戶拖動滑塊。 –
也許你想把'tracking'屬性設置爲'false'並且使用'valueChanged'信號(當'tracking == false'時,它只會在用戶放下滑塊時發出)。 – tmpearce