在界面交互中,框選是一個基本操作,涉及到事件有鼠標按下,鼠標移動,鼠標釋放,監聽這三個事件,再結合程序中設置標誌。便可事件鼠標框選的功能。
鼠標按下事件
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();
}
}