一、描述

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. oracle cols user_tab_columns,user_tab_cols和user_tab_columns的区别
  2. 我的 Rokid 之路 附:记事本技能全部源代码
  3. 一个历史遗留项目清理总结
  4. 使用python+OpenCV实现抖音特效“蓝线挑战”
  5. 配置Oracle Instant Client环境
  6. css animate属性spend不生效
  7. VirualBox安装XP_64bit+中文语言包
  8. Bugku-社工-初步收集
  9. MySQL影院管理系统_数据库三级项目(电影院管理系统)
  10. 机器学习实验——回归预测算法
  11. yocto 编译与bb的语法
  12. matlab地震频谱分析,《基于MATLAB的地震数据的分析》.doc
  13. Codeforce Gym 100015I Identity Checker 暴力
  14. itextpdf将带复选框的html_使用flying-saucer 实现 html转pdf实现input框select,textarea checkbox等的显示...
  15. Spring Cloud (Eureka,Feign,Hystrix整合)
  16. linux搭建wordpress运行环境,Centos 6.x配置基于nginx的wordpress运行环境 | 旺旺知识库...
  17. [Power Query] 汇总表
  18. android sqlite #039;,问题详情_百度云推送_免费专业最精准的移动推送服务平台
  19. 微信公众号自动回复多图文(php)
  20. 农业多贡献·看亮点②平昌青花椒:这个园区为何让参会代表直呼“上头”

热门文章

  1. Sentinel 限流原理
  2. 扎根理论分析软件NVivo原理与技术应用
  3. Xutils3使用全解析
  4. linux下怎么退出vi编辑器,按esc没有用;vim recording
  5. 右键弹出菜单和快捷键的设置
  6. 智能信息检索课程设计
  7. Linux安装telnet服务、telnet 命令用法
  8. 2016河南省第九届ACM程序设计竞赛【正式赛真题】
  9. C ++程序将给定的英寸转换为等效的码,英尺和英寸
  10. 一分钟搞明白什么是维度,什么是事实,什么是度量,什么是粒度