如何在 QML 中关闭带有特定 button/area 的抽屉弹出窗口?
How to close a drawer popup with a specific button/area outside it in QML?
我创建了一个抽屉,我希望通过按下触发它的同一个按钮来关闭它。这个按钮在抽屉外面。但是 QML 似乎不允许这是弹出窗口的唯一关闭策略(抽屉 属性 关闭)选项:
- Popup.NoAutoClose(我必须点击并拖动抽屉才能关闭它)
- Popup.CloseOnPressOutside(外面的任何地方)
- Popup.CloseOnPressOutside父级(外面的任何地方)(默认)
- Popup.CloseOnReleaseOutside Popup.CloseOnReleaseOutside父级
- Popup.CloseOnEscape(仅在退出按钮上)(默认)
此外,由于某种原因,当 visible/drawn 时,我似乎无法单击抽屉外的任何按钮。如果不是这样,我也不会有这个问题。
我可以通过点击抽屉外面的特定 button/area 来关闭抽屉吗?
有人知道解决办法吗?
提前致谢!
Drawer 继承自 Popup,因此我们可以利用这些优势来控制行为。通过设置 model: false 和 closePolicy: Popup.NoAutoClose 可以通过按钮操作控制抽屉。
Window {
id: window
width: 640
height: 480
visible: true
Drawer {
id: drawer
width: 0.4 * window.width
height: window.height
closePolicy: Popup.NoAutoClose
modal: false
}
Button {
text: drawer.visible ? "close" : "open"
anchors.centerIn: parent
onClicked: {
drawer.visible = !drawer.visible
}
}
}
我创建了一个抽屉,我希望通过按下触发它的同一个按钮来关闭它。这个按钮在抽屉外面。但是 QML 似乎不允许这是弹出窗口的唯一关闭策略(抽屉 属性 关闭)选项:
- Popup.NoAutoClose(我必须点击并拖动抽屉才能关闭它)
- Popup.CloseOnPressOutside(外面的任何地方)
- Popup.CloseOnPressOutside父级(外面的任何地方)(默认)
- Popup.CloseOnReleaseOutside Popup.CloseOnReleaseOutside父级
- Popup.CloseOnEscape(仅在退出按钮上)(默认)
此外,由于某种原因,当 visible/drawn 时,我似乎无法单击抽屉外的任何按钮。如果不是这样,我也不会有这个问题。
我可以通过点击抽屉外面的特定 button/area 来关闭抽屉吗?
有人知道解决办法吗? 提前致谢!
Drawer 继承自 Popup,因此我们可以利用这些优势来控制行为。通过设置 model: false 和 closePolicy: Popup.NoAutoClose 可以通过按钮操作控制抽屉。
Window {
id: window
width: 640
height: 480
visible: true
Drawer {
id: drawer
width: 0.4 * window.width
height: window.height
closePolicy: Popup.NoAutoClose
modal: false
}
Button {
text: drawer.visible ? "close" : "open"
anchors.centerIn: parent
onClicked: {
drawer.visible = !drawer.visible
}
}
}