标题:QSlider中怎么设置让鼠标一点就让滚动块马上定位到鼠标点击的地方?
作者:tenggaolong
日期:2008-01-08 11:56
内容:
QSlider中怎么设置让鼠标一点就让滚动块马上定位到鼠标点击的地方?
#1 [tenggaolong 01-11 21:41]
已经放了快一个星期了.没人会吗?我已经算出了根据像素而得到slider的value...并把它打印出来...用一个小小测试程序.
MySlider::MySlider(Qt::Orientation orientation, QWidget * parent)
: QSlider(Qt::Horizontal, parent)
{
setRange(0,200);
}
void MySlider::mouseReleaseEvent(QMouseEvent *event)
{
setRange(0, width());
setValue(event->x());
}
这样可以点到位置..但我的程序要求是mousePressEvent...改成mousePressEvent后..就可以发现..点击是可以....但不是真正解决问题的方法..往左边点和往右边滚动块显示的位置不对...最大化后再点击会发现更严重的问题...我看了src/widgets/qslider.cpp里面的源码..发现mousePressEvent是有算滚动块与点击地方差值...所以..重载后就不能用了...但..我要的效果就是我们用的千千静听..或者是foobar或者wmp这些播放器的滚动条...一点击就到位...望高人指教!!
#2 [landuochong 01-14 13:44]
mousePressEvent.是针对滑块的,改成mousePressEvent就必须重新实现mousePressEvent槽,设法获得鼠标在slider上的位置,然后setValue(int)就可以了
#3 [landuochong 02-15 15:18]
已解决。我把它传到个人作品展示中把
#4 [guyansrg 02-15 15:57]
呵呵,参考参考
#5 [allright 01-05 15:56]
请问楼主,究竟怎么实现啊~能给我参考参考嘛?