如何在QML中关闭一个有特定按钮区域的抽屉弹出窗口?

问题描述 投票:0回答:1

我创建了一个抽屉,我希望通过按下触发它的同一个按钮来关闭它。这个按钮在抽屉外面。但是QML似乎不允许这样做,因为Popups唯一的closepolicy(抽屉属性关闭)选项是。

  • Popup.NoAutoClose(我必须点击并拖动抽屉才能关闭)
  • Popup.CloseOnPressOutside(在外面任何地方)
  • Popup.CloseOnPressOutsideParent(任何地方的外部)(默认)
  • Popup.CloseOnReleaseOutside Popup.CloseOnReleaseOutsideParent
  • Popup.CloseOnEscape(仅在转义按钮上)(默认)

另外,由于某些原因,当抽屉被可视绘制时,我似乎无法点击抽屉外的任何按钮。如果不是这样,我也不会有这个问题。

我可以通过点击抽屉外的特定按钮区域来关闭抽屉吗?

有谁知道解决这个问题的方法吗?先谢谢了!

layout popup qml qtquick2 drawer
1个回答
0
投票

Drawer继承自Popup,所以我们可以利用这些优势来控制行为。通过设置 型号:假closePolicy.Popup.NoAutoClose 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
        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.