[问题] 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