[問題] QT QSlider控制問題

作者: checkIO (chec)   2016-12-02 12:01:17
開發平台(Platform): (Ex: Win10, Linux, ...)
vs 2015
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
qt5.7
問題(Question):
http://imgur.com/2K3zM0Q
我目前用了QSlier
我想請問有沒有辦法寫額外兩個button去控制pageup and down呢(圖片的紅框處)
(因為Slier的捲軸我之後要隱藏它)
我目前的寫法如下,但這樣要自己去算每個widget的間距 非常麻煩
請問有沒有更好的辦法呢
connect(btnArrowRight, SIGNAL(released()), this, SLOT(moveControllerBox()));
//連結button
void myclass::moveControllerBox() {
QPushButton *btn = qobject_cast<QPushButton *>(sender());
QScrollBar *horizontalScrollBar = listWidget->horizontalScrollBar();
int value = listWidget->horizontalScrollBar()->value();
int movePosition = 0;
if (btn->objectName() == "ArrowLeft") {
if (value - 100 < 0) movePosition = 0;
else movePosition = value - 100;
}
else if (btn->objectName() == "ArrowRight") {
if (value + 100 > 1020) movePosition = 1020;
else movePosition = value + 100;
}
horizontalScrollBar->setSliderPosition(movePosition);
}
作者: uranusjr (←這人是超級笨蛋)   2016-12-02 12:27:00
看不太懂你想要怎樣的效果, 可以給個能直接編譯的專案嗎所以你想要的是模擬 QScrollBar 那兩個按鈕的功能?(順帶一提 QScrollBar 並不是 QSlider, 請不要混用)那個換頁的距離可以直接從 pageStep 裡拿到, 不用自己算詳細請參照 QAbstractSlider 的文件如果你只是要同樣的功能, triggerAction 或許更方便如果內建的 action 不合用那麼這樣就差不多 OK 了
作者: checkIO (chec)   2016-12-02 15:58:00
那請問有內建的函式 可以LOOP嗎 還是要自己寫就是如果有 左右切 可以無限循環ITEM
作者: uranusjr (←這人是超級笨蛋)   2016-12-02 18:22:00
是指到最末端再按可以跳回最前端?好像沒有, 只能自己做是說你是想做類似 carousel 的效果嗎?如果是的話其實用QStackedLayout + QAnimation 會比較好做...
作者: checkIO (chec)   2016-12-03 21:24:00
請問自己做動畫的意思是? 自己畫框框然後自己移動WIDGET嗎?

Links booklink

Contact Us: admin [ a t ] ucptt.com