QT 为textedit添加事件过滤器后无法输入中文

当为textedit添加一个事件过滤器(该过滤器的作用是禁止在textedit中使用粘贴功能)后,textedit无法使用中文输入法输入中文,且输入位置光标不闪烁,屏蔽掉该过滤器后,textedit可以正常输入中文,输入位置光标正常闪烁。
事件过滤器如下:

//事件过滤器
bool Widget::eventFilter(QObject *obj, QEvent *event)
{
    if (obj == ui->textEdit||obj == ui->cbb_fontnum) {
        if (event->type() == QEvent::KeyPress) {
            QKeyEvent *keyEvent = static_cast<QKeyEvent*>(event);
            //录入区域禁止粘贴事件过滤
            if (keyEvent->matches(QKeySequence::Paste)&&obj == ui->textEdit){
                QMessageBox::information(this,
                                         tr("温馨提示"),tr("不要走捷径哦"),
                                         QMessageBox::Ok | QMessageBox::Cancel,
                                         QMessageBox::Ok);
                return true;
            }
            //字号下拉框回车事件过滤
            if ((keyEvent->key()==Qt::Key_Enter||keyEvent->key()==Qt::Key_Return)&&obj == ui->cbb_fontnum){
                if(ui->cbb_fontnum->currentText().toInt()>0){
                    QTextCharFormat fmt;
                    fmt.setFontPointSize (ui->cbb_fontnum->currentText().toInt ());
                    ui->textEdit->mergeCurrentCharFormat (fmt);
                    ui->textEdit->setFocus();
                }
                return true;
            }
            else {
                return false;
            }
        }
    }
    else {
        // pass the event on to the parent class
        return QWidget::eventFilter(obj, event);
    }
}

添加事件过滤器代码如下:

ui->textEdit->installEventFilter(this);

输入法确定是已经切换到中文输入法的,因为当我选择其它控件时,输入法的图标还在,如下图

img

当点击到textedit后,输入法的图标也不见了,且textedit中的光标也不见了如下图

img

请问问题到底出现在哪?

你上面第一个if将所有的键盘按下事件都过滤掉了,咋能输入呢

你有很多情况是既没有走到return true也没有走到return false或者return QWidget::eventFilter(obj, event)的
把这段

    else {
        // pass the event on to the parent class
        return QWidget::eventFilter(obj, event);
    }

else去掉,只留下

return QWidget::eventFilter(obj, event);

保证上面没有走到return的地方都能走到这里