头文件重载过滤事件函数

protected:
    bool eventFilter(QObject *obj, QEvent *event);


//安装事件过滤器
ui->textBrowser_22->viewport()->installEventFilter(this);//安装事件过滤器
ui->textEdit_3->viewport()->installEventFilter(this);



//重载事件过滤器函数原型
bool Widget2::eventFilter(QObject *obj, QEvent *event)
{
    if (obj == ui->textBrowser_22->viewport())//指定某个QLabel
    {
        if (event->type() == QEvent::MouseButtonPress)//mouse button pressed
        {
            qDebug() << __FILE__<<__LINE__<< QString::number(event->type());
            QMouseEvent *mouseEvent = static_cast<QMouseEvent*>(event);
            if(mouseEvent->button() == Qt::LeftButton) //判断是否鼠标左键事件
            {
                return true;
            }
        }
    }
    else if (obj == ui->textEdit_3->viewport())//指定某个QLabel
    {
        if (event->type() == QEvent::MouseButtonPress)//mouse button pressed
        {
            qDebug() << __FILE__<<__LINE__<< QString::number(event->type());
            QMouseEvent *mouseEvent = static_cast<QMouseEvent*>(event);
            if(mouseEvent->button() == Qt::LeftButton)//判断是否鼠标左键事件
            {
                return true;
            }
        }
    }
    else
    {
        // pass the event on to the parent class
        return Widget2::eventFilter(obj, event);
    }
    return false;
}
Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐