单击菜单项时未调用Qt Qml TextField onEditingFinished

单击菜单项时未调用Qt Qml TextField onEditingFinished,qt,events,qml,Qt,Events,Qml,在我的Qml示例中,我有一个文本字段,用户可以在其中输入值。 当用户单击菜单中的“保存”时,我希望自动完成编辑。我本以为这已经发生了,因为我认为点击菜单栏会将焦点移开,但显然不是这样 你会怎么处理这样的事情?在完整的应用程序中,我有几个字段连接到一个模型,因此我不想手动读取save处理程序中的每个值 import QtQuick 2.2 import QtQuick.Layouts 1.1 import QtQuick.Controls 1.2 ApplicationWindow {

在我的Qml示例中,我有一个文本字段,用户可以在其中输入值。 当用户单击菜单中的“保存”时,我希望自动完成编辑。我本以为这已经发生了,因为我认为点击菜单栏会将焦点移开,但显然不是这样

你会怎么处理这样的事情?在完整的应用程序中,我有几个字段连接到一个模型,因此我不想手动读取save处理程序中的每个值

import QtQuick 2.2
import QtQuick.Layouts 1.1
import QtQuick.Controls 1.2

ApplicationWindow {
    width: 400; height: 200

    menuBar: MenuBar {
        Menu {
            title: "&Document"
            MenuItem {
                text: "&Save"
                onTriggered: console.log("save clicked")
            }
        }
    }

    TextField {
        onEditingFinished: console.log("editing finished")
    }

}
预期产出:

editing finished
save clicked
实际产量

save clicked

奇数–可以在OSX上确认。我没有看到一个漏洞,为什么不归档一个呢。嗯,我不确定这到底是一个bug还是一个设计决策。两年前,我对vanilla Qt提出了同样的问题:当时的解决方案是安装一个定制的EventFilter,通过按下菜单栏上的按钮来调用clearFocus。