我有一个Qt / cpp代码,并显示一个子类QLineEdit。双击QLineEdit时,永远不会调用focusInEvent(在Maya中启动)。

void myQLineEditClass::focusInEvent(QFocusEvent *e)
{
    MGlobal::displayInfo(MQtUtil::toMString(QString().sprintf("HERE")));
    QLineEdit::focusInEvent(e);
}


如果.h保护部分中存在focusInEvent,则从不显示此事件。任何想法如何获得focusInEvents?

最佳答案

请尝试以下。当focusInEvent不起作用时,有几次对我有用。

void YourWidget::changeEvent(QEvent* event)
{
    if (event->type() == QEvent::ActivationChange)
    {
        if (isActiveWindow())
        {
             // gaining the focus
        }
        else
        {
             // loosing the focus
        }
    }

    // or whatever *parent* class call is
    QWidget::changeEvent(event);
}

09-09 23:39