event函数

event函数是负责事件分发的
event函数_第1张图片

event函数_第2张图片

bool MyWidget::event(QEvent *e)
{
    //事件分发

//    switch (e->type() ) {
//    case QEvent::Close:
//         closeEvent(e);
//        break;
//    case QEvent::MouseMove:
//         mouseMoveEvent(e);
//        break;
//      ``````
//    }
    if(e->type() == QEvent::Timer)
    {
        //干掉定时器
        //如果返回true,事件停止传播
        //转换类型QTimerEvent *e  下面两句可以重启定时器
//        QTimerEvent *env = static_cast(e);
//        timerEvent(env);
        return true;
    }
    else if(e->type() == QEvent::KeyPress)
    {
        //类型转换
        QKeyEvent *env = static_cast(e);
        if(env->key() == Qt::Key_B)
        {
            return QWidget::event(e);
        }
        return true;
    }
    else
    {
        return QWidget::event(e);
    }
}

你可能感兴趣的:(QT)