![](/img/trans.png)
[英]How to disable Qt Mainwindow shortcut applies to the modeless dialog
[英]Dialog will disable Shortcut in it's parent?
我的 main.qml 文件中有一个对话框,问题是当我单击菜单打开对话框时,关闭对话框后, Shortcut
不再起作用。
main.qml
ApplicationWindow {
id:mainWindow
Shortcut {
id:backShortcut
sequences: ["Esc", "Back"]
onActivated: {
console.log("Back In MainPage")
if(sv.depth>1)
{
sv.pop();
}
else if(drawer.visible){
drawer.close();
}
else{
exitDialog.open();
}
}
}
MenuItem{
contentItem: Text {
text: qsTr("Open Dialog")
}
onClicked: {
var c= myDialogCom.createObject(mainWindow);
c.open();
}
}
Component{
id:myDialogCom
MyDialog{
}
}
}
MyDialog.qml
Dialog {
id: root
parent: Overlay.overlay
x:0
height: mainWindow.height
width:mainWindow.width
header: ToolBar{
}
StackView{
}
}
编辑我想提一下,我已经总结了我的问题以便更快地理解。但是我在不同的页面中有多个Shortcut
,例如:(ChatsPage.qm and ChatPage.qml and main.qml) 但我试图提问很简单,所以我只是说main.qml
中的Shortcut
,因为问题还存在
我将Shortcut
的context
属性更改为Qt.ApplicationShortcut
。现在它可以工作了。但我不知道为什么 :> ,如果每个人都解释一下
Shortcut {
id:backShortcut
sequences: ["Esc", "Back"]
context: Qt.ApplicationShortcut
onActivated: {
console.log("Back In MainPage")
if(sv.depth>1)
{
sv.pop();
}
else if(drawer.visible){
drawer.close();
}
else{
exitDialog.open();
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.