【Qt】QSlider點擊定位的提高使用度的實現

        Qt自帶的滑動條QSlider和Android中自帶的滑動條控件相比實在是具有天壤之別,此處使用eventFilter事件過濾器來完成一個鼠標點擊滑動條滑塊定位的細節功能。

代碼段:

​
bool Device::eventFilter(QObject *obj, QEvent *event) //slider滑塊根據鼠標位置
{
    if(obj==pSlider_l)
    {
        if (event->type()==QEvent::MouseButtonPress)           //判斷類型
        {
            QMouseEvent *mouseEvent = static_cast<QMouseEvent *>(event);
            if (mouseEvent->button() == Qt::LeftButton) //判斷左鍵
            {
               int dur = pSlider_l->maximum() - pSlider_l->minimum();
               int pos = pSlider_l->minimum() + dur * ((double)mouseEvent->x() / pSlider_l->width());
               if(pos < (pSlider_l->sliderPosition())||pos > (pSlider_l->sliderPosition()))
                {
                  pSlider_l->setValue(pos);
                }
            }
        }
    }

    return QObject::eventFilter(obj,event);
}

​

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章