QT : 鼠标框选

在界面交互中,框选是一个基本操作,涉及到事件有鼠标按下,鼠标移动,鼠标释放,监听这三个事件,再结合程序中设置标志。便可事件鼠标框选的功能。

鼠标按下事件

void CropView::mousePressEvent(QMouseEvent *event)
{
    if(event->button() == Qt::LeftButton){
        m_startpoint = event->pos();
        this->mousedown = true;
    }
}

鼠标移动事件

void CropView::mouseMoveEvent(QMouseEvent *event)
{
    if(event->buttons()==Qt::LeftButton){
        if(this->mousedown){
            this->m_endpoint = event->pos();
            paint();
        }
    }
}

鼠标释放事件

void CropView::mouseReleaseEvent(QMouseEvent *event)
{
    if(this->mousedown){
        this->m_endpoint = event->pos();
        this->mousedown = false;
        this->release = true;
        paint();
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章