→ uranusjr: 看不太懂你想要怎樣的效果, 可以給個能直接編譯的專案嗎 12/02 12:27
https://www.youtube.com/watch?v=ELvUWf_zN5o&feature=youtu.be
→ uranusjr: 所以你想要的是模擬 QScrollBar 那兩個按鈕的功能? 12/02 14:23
→ uranusjr: (順帶一提 QScrollBar 並不是 QSlider, 請不要混用) 12/02 14:23
→ uranusjr: 那個換頁的距離可以直接從 pageStep 裡拿到, 不用自己算 12/02 14:24
→ uranusjr: 詳細請參照 QAbstractSlider 的文件 12/02 14:24
對 因為我想把拉霸隱藏 用按鈕操作
所以取得換頁的距離之後
想使用自制的button去模擬那兩個按鈕的功能還是要自己寫setSliderPosition嗎?
我最後改寫成這樣了 如果有更好的方法麻煩再請指教
void move::moveControllerBox() {
QPushButton *btn = qobject_cast<QPushButton *>(sender());
QScrollBar *horizontalScrollBar = listWidget->horizontalScrollBar();
qDebug()<<"listWidget width: "<<listWidget->width();
int nowScrollValue = listWidget->horizontalScrollBar()->value();
int movePosition = 0;
int singleStep = horizontalScrollBar->singleStep(); //一次跳一格的距離
//int pageStep = horizontalScrollBar->pageStep(); //一次跳整頁的距離
if (btn->objectName() == "ArrowLeft") {
movePosition = nowScrollValue - singleStep;
}
else if (btn->objectName() == "ArrowRight") {
movePosition = nowScrollValue + singleStep;
}
horizontalScrollBar->setSliderPosition(movePosition);
}
※ 編輯: checkIO (210.242.6.98), 12/02/2016 15:05:13
→ uranusjr: 如果你只是要同樣的功能, triggerAction 或許更方便 12/02 15:11
→ uranusjr: 如果內建的 action 不合用那麼這樣就差不多 OK 了 12/02 15:12
→ checkIO: 那請問有內建的函式 可以LOOP嗎 還是要自己寫 12/02 15:58
→ checkIO: 就是如果有 左右切 可以無限循環ITEM 12/02 16:22
→ uranusjr: 是指到最末端再按可以跳回最前端?好像沒有, 只能自己做 12/02 18:22
→ uranusjr: 是說你是想做類似 carousel 的效果嗎?如果是的話其實用 12/02 18:30
→ uranusjr: QStackedLayout + QAnimation 會比較好做... 12/02 18:31
如果是像這個畫面這樣
https://www.youtube.com/watch?v=OJL_484Nct4
→ uranusjr: 是類似沒錯, 這個確實不是 scroll bar 該做的事情... 12/03 20:06
→ uranusjr: 不過 stacked layout(一次只能顯示一個)也不適合 12/03 20:07
→ uranusjr: 大概得自己做動畫了 12/03 20:07
→ checkIO: 請問自己做動畫的意思是? 自己畫框框然後自己移動 12/03 21:24
→ checkIO: WIDGET嗎? 12/03 21:24