一、描述

Tumbler 用于通过旋转轮子来选择一个值。

Tumbler {model: 10
}

API 类似于 ListViewPathView 等视图的 API。可以设置模型和委托,并且 countcurrentItem 属性提供对视图信息的只读访问。与 PathViewListView 之类的视图不同的是始终存在一个当前项(当模型不为空时)。即当 count 等于 0 时,currentIndex 将为 -1。在所有其他情况下,它将大于或等于 0。

import QtQuick
import QtQuick.Window
import QtQuick.ControlsWindow
{id: windowwidth: 800height: 600visible: truefunction formatText(count,modelData){var data = (count === 12) ? modelData + 1 : modelData;return data.toString().length < 2 ? "0" + data : data;}Rectangle {width: frame.implicitWidth + 10height: frame.implicitHeight + 10FontMetrics {id: fontMetrics}Component{id: delegateComponentLabel{text: formatText(Tumbler.tumbler.count, modelData)opacity: 1.0 - Math.abs(Tumbler.displacement) / (Tumbler.tumbler.visibleItemCount / 2)horizontalAlignment: Text.AlignHCenterverticalAlignment: Text.AlignVCenterfont.pixelSize: fontMetrics.font.pixelSize * 1.25}}Frame {id: framepadding: 0anchors.centerIn: parentRow {id: rowTumbler {id: hoursTumblermodel: 12delegate: delegateComponent}Tumbler {id: minutesTumblermodel: 60delegate: delegateComponent}Tumbler{id: amPmTumblermodel: ["AM", "PM"]delegate: delegateComponent}}}}
}

二、属性成员

1、【只读】count : int

模型中的项目数。

2、currentIndex : int

当前项目的索引。当 count 等于 0 时,此属性值为 -1。在其他情况下,它将大于或等于 0。

3、【只读】currentItem : Item

当前索引的项目。

4、delegate : Component

用于显示每个项目的委托。

5、model : variant

提供数据的模型。

6、moving : bool

由于用户拖动或轻弹,此属性描述了当前是否正在移动。

7、visibleItemCount : int

可见的项目数。它必须是奇数,因为当前项目始终垂直居中。

8、wrap : bool

当到达顶部或底部时,是否环绕。当 count 小于 visibleItemCount 时,默认值为 false。

三、附加属性成员

1、【只读】Tumbler.displacement : real

此附加属性保存从 -visibleItemCount / 2 到 visibleItemCount / 2 的值,表示该项目与当前项目的距离,0 表示是当前值。

项目在非 currentItem 时变为 40% 不透明,当成为 currentItem 时会过渡到 100% 不透明度:

delegate: Text {text: modelDataopacity: 0.4 + Math.max(0, 1 - Math.abs(Tumbler.displacement)) * 0.6
}

2、【只读】Tumbler.tumbler : Tumbler

该属性可以附加到委托。如果项目不是 Tumbler 委托,则该值为 null。

四、函数成员

1、void positionViewAtIndex(int index, PositionMode mode)

定位视图,使索引位于 mode 指定的位置。

五、自定义 Tumbler 示例

import QtQuick 2.14
import QtQuick.Window 2.14
import QtQuick.ControlsWindow {width: 640height: 480visible: truetitle: qsTr("Hello World")Tumbler {id: controlmodel: 15background: Item {Rectangle {opacity: control.enabled ? 0.2 : 0.1border.color: "#000000"width: parent.widthheight: 1anchors.top: parent.top}Rectangle {opacity: control.enabled ? 0.2 : 0.1border.color: "#000000"width: parent.widthheight: 1anchors.bottom: parent.bottom}}delegate: Text {text: qsTr("Item %1").arg(modelData + 1)font: control.fonthorizontalAlignment: Text.AlignHCenterverticalAlignment: Text.AlignVCenteropacity: 1.0 - Math.abs(Tumbler.displacement) / (control.visibleItemCount / 2)required property var modelDatarequired property int index}Rectangle {anchors.horizontalCenter: control.horizontalCentery: control.height * 0.4width: 40height: 1color: "#21be2b"}Rectangle {anchors.horizontalCenter: control.horizontalCentery: control.height * 0.6width: 40height: 1color: "#21be2b"}}
}

QML控件类型:Tumbler相关推荐

  1. QML控件类型:ToolTip

    一.描述 ToolTip 继承自 Popup,可以为任何控件提供工具提示.工具提示是通知用户控件功能的一小段文本.它通常放置在父控件的上方或下方. 提示文本可以是任何富文本格式的字符串. 1.1.附加 ...

  2. QML控件类型:Dial

    一.描述 仪表盘控件,继承自 Control. 表盘可以用键盘操作.支持以下操作: Qt.Key_Left:按 stepSize 减小值 Qt.Key_Down:按 stepSize 减小值 Qt.K ...

  3. QML控件类型:ComboBox

    一.描述 ComboBox 是一个组合按钮和弹出列表. 它提供了一种以占用最少屏幕空间的方式向用户呈现选项列表的方法. ComboBox 填充有数据模型.数据模型通常是 JavaScript 数组.L ...

  4. QML控件类型:Menu

    一.描述 可用作上下文菜单或弹出菜单的菜单弹出窗口. 当用作上下文菜单: MouseArea {anchors.fill: parentacceptedButtons: Qt.LeftButton | ...

  5. QML控件类型:StackView

    一.描述 StackView 提供栈式导航.它的特点是用类似于栈的方式管理一系列界面,这些界面之间可能有内在联系,根据业务需要,可以一级一级向前面跳转或返回后面的界面. import QtQuick ...

  6. QML控件类型:Drawer

    一.描述 Drawer 提供一个可以使用滑动手势打开和关闭的侧面板.继承自 Popup. Drawer 可以从上下左右四个方向打开. import QtQuick import QtQuick.Con ...

  7. Qt quick基础2(包含平移旋转放缩以及qml控件大写开头啊)

    Qt quick基础2(包含平移旋转放缩以及qml控件大写开头啊) 目录 Qt quick基础2(包含平移旋转放缩以及qml控件大写开头啊) 前言 简单的平移.旋转和放缩 其他元素的一些基本使用 qm ...

  8. Qml控件:ComboBox

    Qml控件:ComboBox ComboBox默认状态 定制ComboBox 1.定制框架 2.定制指示器 3.定制背景 4.定制内容 5.定制弹框 6.定制弹框Item 7.弹框项的点击 8.定制删 ...

  9. 如果知道一个控件类型的对话框句柄是编辑框控件

    如果知道一个控件类型的对话框句柄是编辑框控件 TCHAR chs[256];  ::GetClassName(pCtrl->m_hWnd, chs, 256);  CString str(chs ...

最新文章

  1. MATLAB2013a的license过期的解决办法
  2. 同一AppDomain内的SharpGL的FrameBuffer会相互影响?
  3. php 判断PC 还是 telphone 访问网站
  4. 吉林电子计算机学校学费多少,收费标准_吉林工商学院学费介绍_高考院校库
  5. Eclipse导入他人的Maven工程报错
  6. java applet 访问文件_使用JavaApplet访问数据库
  7. python对XML 操作
  8. win7旗舰版梦幻主题补丁~完美你的桌面
  9. c语言读取三菱plc数据,三菱plc怎么读取程序_电脑读取三菱PLC数据简单方法
  10. PPT如何制作?掌握这几个思维,就可快捷设计制作PPT了
  11. Photoshop CS4 卡通角色的设计与绘制(2)
  12. Data URL实现用户头像上传
  13. Flutter学习笔记: Dart语言值之面向对象class
  14. Python练习小程序 定时关机小脚本
  15. NOIp系列题目及CF小结
  16. 2008无线站点、客户端、手游TOP50揭晓!
  17. windows7 cat ‘t find recovert.data
  18. C语言调用函数时参数传递实测(好久以前记录的)
  19. android获取root权限的命令
  20. 我们这个时代,寒门再难出贵子

热门文章

  1. 小米 Redmi airDots 2耳机一只一直在亮白光怎么办
  2. 霍夫圆检测原理+实战
  3. C语言中void具体有什么作用
  4. Linux常用命令(3)以及命令模式下多种操作
  5. 乌班图的世界——建立文件夹和空文件
  6. 1:基本初等函数的性质
  7. Netty 出站入站机制详解
  8. SpringMVC(三)——响应
  9. 手机版网课查询助手内置答案
  10. Python写诗如梦令·李清照