(Notas del estudio de QT): eventos de ratón de uso común

Eventos comunes del ratón

Método para realizar

  • Paso 1, arrastre un control TextLab

  • Dado que estos eventos del mouse son funciones virtuales y están protegidos, deben reescribirse.
  • Pero el código fuente de QLabel no se puede definir en este momento, podemos heredar QLabel y luego reescribirlo .
  • Paso 2, haga clic con el botón derecho en el proyecto para agregar la clase C ++

  • Paso 3, modificar el archivo correspondiente a MyLabel (queremos reescribir QLabel, pero sin esta opción de herencia, solo se puede heredar QWidget)

  • Paso 4, copie el nombre de MyLabel, abra el archivo de interfaz de usuario creado en el paso 1, seleccione el control TextLab y haga clic derecho para promoverlo a

  • Paso 5. En el archivo de encabezado MyLabel, declare reescribir el evento del mouse
//鼠标进入事件
void enterEvent(QEvent *);

//鼠标离开事件
void leaveEvent(QEvent *);

//鼠标按下事件
void mousePressEvent(QMouseEvent *ev);

//鼠标释放事件
void mouseReleaseEvent(QMouseEvent *ev);

//鼠标移动事件
void mouseMoveEvent(QMouseEvent *ev);
  • En el archivo fuente de MyLabel
//鼠标进入事件
void MyLabel::enterEvent(QEvent *)
{
   qDebug() << "鼠标进入了";
}

//鼠标离开事件
void MyLabel::leaveEvent(QEvent *)
{
  qDebug() << "鼠标离开了";
}
//鼠标按下事件
void MyLabel::mousePressEvent(QMouseEvent *ev)
{

    //鼠标左键按下  打印信息
      if(ev->button() == Qt::LeftButton)
      {
        QString str =  QString("鼠标按下了 x =  %1  y = %2 " ).arg(ev->x()).arg(ev->y());
        qDebug() << str;
     }
}
//鼠标释放事件
void MyLabel::mouseReleaseEvent(QMouseEvent *ev)
{

    if(ev->button() == Qt::LeftButton)
    {
        QString str =  QString("鼠标释放了 x =  %1  y = %2 " ).arg(ev->x()).arg(ev->y());
        qDebug() << str;
    }
}
//鼠标移动事件
void MyLabel::mouseMoveEvent(QMouseEvent *ev)
{
     if(ev->buttons() & Qt::LeftButton)
     {
        QString str =  QString("鼠标移动了 x =  %1  y = %2 " ).arg(ev->x()).arg(ev->y());
        qDebug() <<str;
     }
}

 

Supongo que te gusta

Origin blog.csdn.net/baidu_41388533/article/details/111566857
Recomendado
Clasificación