当前位置: 代码迷 >> QT开发 >> 回车键按下有关问题
  详细解决方案

回车键按下有关问题

热度:29   发布时间:2016-04-25 03:54:08.0
回车键按下问题
现在有个对话框里面有个lineedit 和buttonbox
我重写了accept和reject方法
我添加了lineedit的回车事件响应,可于此同时accept函数也被调用,如何不让accept函数也响应?

我试着在里面加了事件过滤器好像也没有效果
  ui->buttonBox->installEventFilter(this);

在对话框的eventfilter函数里
    if (target == ui->buttonBox)
    {
        if(e->type() == QEvent::KeyPress)
        {
            QKeyEvent *keyEvent = static_cast<QKeyEvent*>(e);
            if (keyEvent->key() == Qt::Key_Enter)
            {
                qDebug("enter event filterd!");
                return true;
            }
        }
    }
    return QDialog::eventFilter(target, e);
感觉这个应该是可行的,类似VC里的pretranslatemessage,请qt达人指点

------解决方案--------------------

//if (keyEvent->key() == Qt::Key_Enter)这句改为
if (keyEvent->key() == Qt::Key_Enter 
------解决方案--------------------
 keyEvent->key() == Qt::Key_Return)

------解决方案--------------------
建议不用buttonbox,换成两个QPushButton,问题就解决了。
  相关解决方案