У меня есть всплывающее окно QML, которое я могу закрыть, щелкнув за его пределами или нажав клавишу escape (следовательно, политика закрытия по умолчанию подходит).Однако мне нужно делать разные вещи, если всплывающее окно закрывается с помощью escape (отменить несколько вещей) или щелкнуть снаружи (зафиксировать изменения).Я не могу использовать Диалог, нам не нужны явные кнопки.
Как я могу надежно его обнаружить?До сих пор я использовал MouseArea для определения, когда мышь закрывает всплывающее окно при его закрытии.Единственная проблема заключается в том, что он не работает, если пользователь нажимает escape, а его мышь находится вне всплывающего окна.
Popup
{
onAboutToHide: {
if(!ma.containsMouse)
{
}
}
contentItem: Text{
text: "hello"
}
MouseArea{
z:-1
id: ma
anchors.fill: parent
hoverEnabled:true
}
}
Я пытался добавить
Keys.onEscapePressed:{
console.log('esc !')
}
во всплывающее окно, нотогда QML жалуется, что это не предмет.