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();
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章