QML TextInput:如何检测聚焦事件?

时间:2020-09-15 13:10:03

标签: c++ qt qml qt5

我需要模拟https://doc.qt.io/qt-5/qml-qtquick-textinput.html#editingFinished-signal。 因此,当用户按Enter /空格键时,将焦点更改为我需要信号的另一个项目。 问题是editFinished对我没用。只有在 没有遮罩/验证器,在其他情况下,如果TextInput为无效/不完整状态, 没有editingFinished信号。所以我要模拟它。 我无法在C ++中继承QQuickTextInput,因为它是私有类。 我可以在QML中继承TextInput,但是如何在QML类中获取focusOutEvent 继承TextInput

1 个答案:

答案 0 :(得分:3)

您可以使用activeFocus属性检查对象是否具有焦点。

TextInput {
    onActiveFocusChanged: {
        if (activeFocus) {
            // Gained focus
        } else {
            // Lost focus
        }
    }
}