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