您的位置:首页 > 编程语言 > C语言/C++

Qt/C++ QSlider解决点击不能到该位置问题

2016-05-26 15:33 337 查看
方法一:可以继承重写一个QSlider方法二:1.instaneventfiliter(this);slider安装一个事件过滤器              2.在eventfilter(QObject *,QEvent*)中拦截它,很简单吧例子:
slider=new QSlider(this);
slider->installEventFilter(this);
bool trayIconMenu::eventFilter(QObject *obj, QEvent *event)
{
    if(obj==slider)
    {
if (event->type()==QEvent::MouseButtonPress)           //判断类型
        {
            QMouseEvent *mouseEvent = static_cast<QMouseEvent *>(event);
if (mouseEvent->button() == Qt::LeftButton)	//判断左键
            {
               int dur = slider->maximum() - slider->minimum();
               int pos = slider->minimum() + dur * ((double)mouseEvent->x() / slider->width());
               if(pos != slider->sliderPosition())
                {
                  slider->setValue(pos);
            }
        }
    }
}
return QObject::eventFilter(obj,event);
}
okay!即可以实现slider点哪里就到哪里
 powered by:小乌龟在大乌龟背上
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: