抽屉 QML 类型

可使用滑动手势打开和关闭的侧面板。 更多...

导入语句import QtQuick.Controls
继承

弹出框

属性

详细描述

抽屉提供了一种基于滑动的侧面板,类似于经常在触摸界面中使用的侧面板,用于提供导航的中央位置。

抽屉可以放置在内容项的四条边中的任何一条。上面的抽屉放置在窗口的左侧边缘。随后通过 "拉动" 拉出窗口的左侧边缘来打开抽屉。

import QtQuick
import QtQuick.Controls

ApplicationWindow {
    id: window
    visible: true

    Drawer {
        id: drawer
        width: 0.66 * window.width
        height: window.height

        Label {
            text: "Content goes here!"
            anchors.centerIn: parent
        }
    }
}

抽屉是一种特殊类型的弹出窗口,位于窗口 边缘 之一。默认情况下,抽屉会将其自身重新设置为窗口 overlay,因此它在窗口坐标上操作。还可以手动设置 父项 以使抽屉在特定的坐标空间中操作。

抽屉可以配置为仅覆盖其窗口边缘的一部分。以下示例说明了如何将抽屉定位在窗口标题下方

import QtQuick
import QtQuick.Controls

ApplicationWindow {
    id: window
    visible: true

    header: ToolBar { }

    Drawer {
        y: header.height
        width: window.width * 0.6
        height: window.height - header.height
    }
}

属性 position 决定了抽屉的可见部分,该值介于 0.01.0 之间。不可能设置位于左侧或右侧窗口边缘的抽屉的 x 坐标(或水平外边距),或者位于顶部或底部窗口边缘的抽屉的 y 坐标(或垂直外边距)。

在上面的图像中,应用程序的内容是 "推" 过屏幕。这是通过将平移应用到内容上实现的。

import QtQuick
import QtQuick.Controls

ApplicationWindow {
    id: window
    width: 200
    height: 228
    visible: true

    Drawer {
        id: drawer
        width: 0.66 * window.width
        height: window.height
    }

    Label {
        id: content

        text: "Aa"
        font.pixelSize: 96
        anchors.fill: parent
        verticalAlignment: Label.AlignVCenter
        horizontalAlignment: Label.AlignHCenter

        transform: Translate {
            x: drawer.position * content.width * 0.33
        }
    }
}

如果您希望在打开抽屉时将应用程序的内容保持在原地,请勿应用平移。

可以将抽屉配置为不可关闭的持久侧面板,方法是使抽屉 非模态非交互式。有关更多详细信息,请参阅 图库 示例。

注意: 在某些平台上,某些边缘可能已被保留用于系统手势,因此不能与抽屉一起使用。例如,在 Android 和 iOS 上,顶部和底部边缘可能已被保留用于系统通知和控制中心。

另请参阅 SwipeView自定义抽屉导航控件弹出控件

属性文档

dragMargin : real

该属性存储拖动动作将打开抽屉的屏幕边缘距离。将值设置为 0 或更小可以防止通过拖动打开抽屉。

默认值为 Qt.styleHints.startDragDistance

另见interactive


edge : enumeration

该属性存储抽屉从哪个窗口边缘打开的位置。可接受的值有

常量描述
Qt.TopEdge窗口的顶部边缘。
Qt.LeftEdge窗口的左侧边缘(默认)。
Qt.RightEdge窗口的右侧边缘。
Qt.BottomEdge窗口的底部边缘。

interactive : bool [since QtQuick.Controls 2.2 (Qt 5.9)]

此属性用以确定抽屉是否为交互式。非交互式抽屉不会响应滑动操作。

默认值为 true

此属性自 QtQuick.Controls 2.2(Qt 5.9)版本引入。

另见dragMargin


position : real

此属性存储抽屉相对于其最终目的位置的值。换句话说,当抽屉完全关闭时,位置为 0.0,当完全打开时,位置为 1.0


© 2024 The Qt Company Ltd. 本文档中包含的贡献的文档版权属于其各自的拥有者。所提供的文档是根据自由软件基金会发布的 GNU 自由文档许可证版本 1.3 的条款许可的。Qt 和相应商标是 The Qt Company Ltd. 在芬兰和/或世界其他国家的商标。所有其他商标都是其各自所有者的财产。