Qt Quick - Drawer使用总结
- 一、概述
- 二、使用
- 1、基础使用
- 2、特点空间运行
- 3、与内容转换相互挤占
 
一、概述
Drawer提供了一个基于滑动的侧边面板,类似于经常在触控界面中使用的侧边面板,为导航提供了一个位置。
 
二、使用
1、基础使用
抽屉可以放置在内容项的四个边缘中的任何一个。下面的抽屉靠在窗口的左边缘。
然后,从窗口左侧“拖”出抽屉,打开抽屉。
  import QtQuick 2.14
  import QtQuick.Controls 2.14
  ApplicationWindow {
      id: window
      visible: true
      Drawer {
          id: drawer
          width: 0.66 * window.width
          height: window.height
          Label {
              text: "左边抽屉内容"
              anchors.centerIn: parent
          }
      }
  }
2、特点空间运行
Drawer是一种特殊类型的弹出框,位于窗口边缘之一。默认情况下,Drawer将自己重新作为窗口覆盖层的父元素,因此可以对窗口坐标进行操作。还可以手动将父元素设置为其他元素,以使drawer在特定的坐标空间中运行。

抽屉可以配置为只覆盖其窗口边缘的一部分。下面的例子演示了如何将Drawer放置在窗口标题下方:
  import QtQuick 2.14
  import QtQuick.Controls 2.14
  ApplicationWindow {
      id: window
      visible: true
      header: ToolBar { }
      Drawer {
          y: header.height
          width: window.width * 0.6
          height: window.height - header.height
		  Label {
              text: "左边抽屉内容"
              anchors.centerIn: parent
          }
      }
  }
3、与内容转换相互挤占
position属性决定了抽屉的可见面积,取值范围在0.0到1.0之间。不能在左侧或右侧窗口边缘设置抽屉的x坐标(或水平外边距),也不能在顶部或底部窗口边缘设置抽屉的y坐标(或垂直外边距)。
 
在上图中,应用程序的内容被“推送”到屏幕上。这是通过对内容进行转换来实现的:
  import QtQuick 2.14
  import QtQuick.Controls 2.14
  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
          }
      }
  }
如果希望应用程序的内容在抽屉打开时保持在原来的位置,则不要应用转换。
抽屉可以通过使抽屉non-modal 和 non-interactive(非模态和非交互式)配置为不可关闭的持久侧板。更多细节请参阅侧面板示例。
注意:在某些平台上,某些边缘可能为系统手势保留,因此不能与Drawer一起使用。例如,顶部和底部边缘可能用于Android和iOS上的系统通知和控制中心。



















