QML_ToolSeparator、ToolTip和Tumbler

分隔工具栏ToolSeparator、工具提示ToolTip和旋转轮Tumbler

分隔工具栏 ToolSeparator
属性
horizontal : [只读],保存方向是否等于Qt.Horizontal
vertical : [只读],保存方向是否等于Qt.Vertical
orientation : 保留工具分隔符的方向

没有特殊设置的话我们只需要定义ToolSeparator元素就可以了,如果想要设置颜色的话,一定为其配置大小。要不然ToolSeparator是默认最小的,这样就显示不出来分隔了。

ToolBar {id:toolbaranchors.centerIn: parentRowLayout {anchors.fill: parentToolButton {text: qsTr("Action 1")}ToolSeparator {contentItem: Rectangle {implicitWidth: 3implicitHeight: toolbar.height - 20color: "orange"}}ToolButton {text: qsTr("Action 2")}}
}

Window {id: rootvisible: truewidth: 640height: 480title: qsTr("Menu")color: "lightgray"Button {anchors.centerIn: parenttext: "打开左侧菜单"onClicked: {if (drawer.visible) {drawer.close()} else {drawer.open()}}}Drawer {id: drawerwidth: 0.3 * root.widthheight: root.heightdragMargin: parent.width / 3Column {ToolButton {width: drawer.widthtext: "New file"}ToolSeparator {width: drawer.widthorientation: Qt.Horizontal}ToolButton {width: drawer.widthtext: "save"}ToolSeparator {width: drawer.widthorientation: Qt.Horizontal}ToolButton {width: drawer.widthtext: "save as..."}}}
}

工具提示 ToolTip
有的时候,当我们的鼠标悬停在某个控件的下方时,会出现一段提示,这就是用到了提示栏。ToolTip是一小段文本,它通知用户控件的功能。通常将其放置在父控件的上方或下方。提示文本可以是任何富文本格式的字符串。
属性
delay : 保留共享工具提示的延迟(毫秒)
text : 保存共享工具提示的文本
timeout : 保存共享工具提示的超时(毫秒)
toolTip : 保存共享工具提示实例
visible : 保存共享工具提示是否可见

Window {id: rootvisible: truewidth: 640height: 480title: qsTr("Menu")color: "lightgray"Row {anchors.centerIn: parentspacing: 30Button {text: qsTr("Button")hoverEnabled: trueToolTip.delay: 100ToolTip.timeout: 2000ToolTip.visible: hoveredToolTip.text: qsTr("这是提示")}Slider {id: slidervalue: 0.5ToolTip {parent: slider.handlevisible: slider.pressedtext: slider.value.toFixed(1)}}}
}


旋转轮 Tumbler
属性
count : 保存模型中的项目数
currentIndex : 保存当前项目的索引
currentItem : 设置项目保留在当前索引处
delegate : 委托
model : 模型
moving : 描述由于用户拖动或轻弹而导致的Tumbler当前是否正在移动
visibleItemCount : 保存翻转开关中可见项目的数量
wrap : 确定当Tumbler到达顶部或底部时是否回绕

Window {id: rootvisible: truewidth: 640height: 480title: qsTr("Menu")color: "lightgray"Frame {id: framepadding: 0anchors.centerIn: parentRow {id: rowTumbler {id: hoursTumblermodel: 24}Tumbler {id: minutesTumblermodel: 60}Tumbler {id: amPmTumblermodel: 60}}}
}

因为我们平常见到的时间例如23:00:03,时分秒都是两位的且时间并没有0这个选项。所以为了实现日常生活中的效果,我们需要为Tumbler实现委托。将Tumbler的内容设置成我们想要的格式。
设置Tumbler的委托为delegateComponent,Label里面主要是内容和透明度理解起来有点难度,首先来看这个内容,肯定还是Tumbler的模型数据,但是需要对内容物做一些处理。这里用到了Qml中的自定义函数,当Tumbler的模型中的选型总数为12时,代表是时钟模型,所以里面的每个选项的内容需要加1,而分钟和秒钟就不需要加1了。另外,我们将模型数据转成字符串,如果位数不是两位,就为其补0。
再看透明度,我们还是需要对当前选项和非当前选项做一个区分的,涉及到了Tumbler的附件属性displacement,此附加属性为只读属性,表示该项目与当前项目之间的距离(当前项目的话距离为0)。Tumbler有上下两个方向,所以这个距离是由正负的,计算与当前项的距离是需要用到Math.abs()函数,此函数是取绝对值的函数。

Window {id: rootvisible: truewidth: 640height: 480title: qsTr("Menu")color: "lightgray"Rectangle {id: rectanchors.centerIn: parentwidth: frame.implicitWidth + 10height: frame.implicitHeight + 10function formatText(count, modelData) {var data = count === 12 ? modelData + 1 : modelDatareturn data.toString().length < 2 ? "0" + data : data}Component {id: delegateComponentLabel {text: rect.formatText(Tumbler.tumbler.count, modelData)opacity: 0.4 + (1 - Math.abs(Tumbler.displacement)) * 0.6horizontalAlignment: Text.AlignHCenterverticalAlignment: Text.AlignVCenterfont.pixelSize: 20}}Frame {id: framepadding: 0anchors.centerIn: parentRow {id: rowTumbler {id: hoursTumblermodel: 24delegate: delegateComponent}Tumbler {id: minutesTumblermodel: 60delegate: delegateComponent}Tumbler {id: amPmTumblermodel: 60delegate: delegateComponent}}}}
}

QML_ToolSeparator、ToolTip和Tumbler相关推荐

  1. qml 分隔工具栏ToolSeparator 工具提示ToolTip 旋转轮Tumbler

    分隔工具栏 ToolSeparator 作用是将工具栏中的一组项目与相邻的项目分开.效果上就是通过用一条线分隔项目,实现视觉上的分隔作用 属性 horizontal : [只读],保存方向是否等于Qt ...

  2. 小D学blend-----如何创建自定义的Tooltip控件

    运行环境:blend 4.0或者blend 3.0 +silverlight 3.0(其实我相信步骤应该是差不多的) 语言:C# Tooltip类:它是表示一个长方形的小弹出窗口,该窗口在用户将指针悬 ...

  3. 设置echarts的grid、tooltip、柱状图渐变色、折线图渐变色

    grid: {show: false,left: '0px',top: '50px',right: '1px',bottom: '0px',containLabel: true,backgroundC ...

  4. ASP.NET TricksTip:关于Tooltip(title)的换行问题

    我们知道,为了使对于普通 HTML 元素的title可以换行,至少可以有可以两种方式: 1.将title的文本分行写 <a href="#" title="hell ...

  5. Ajax实现DataGrid/DataList动态ToolTip

    1.建立一aspx页面,html代码2.cs代码 using System.Data.SqlClient; using System.IO; protected void Page_Load(obje ...

  6. JQuery制作的toolTip,针对图片预览效果

    昨天做了一个文字版的toolTip,后来想想现在大家都爱看图,文字未免有点单调了点,那我们就来个图片式的预览.代码比较简单,我就不多说了. 欢迎来到 买礼网 选购礼品! 畅游鄂西山水风光尽在 恩施旅游 ...

  7. Coolite Toolkit学习笔记六:常用控件Accordion、ToolBar、ToolTip

    一.Accordion控件      Accordion的功能非常适用,使用很简单,轻轻松松的就可以构建一个可折叠的界面展示应用效果.相信大多数做ASP.NET开发的朋友都使用过ASP.NET AJA ...

  8. DataGridView设置单元格的提示内容ToolTip详解

    这篇文章介绍了DataGridView设置单元格提示内容ToolTip的方法,文中通过示例代码介绍的非常详细.对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下 ToolTip属性用来设置 ...

  9. echarts 饼图每块颜色_读者提问,如何让 tooltip 提示框内显示饼图

    效果截图 前些天有读者问,ECharts 的提示框(tooltip)内,能不能添加一个饼图? 我之前倒是看到过用饼图作为散点图数据点的例子,感觉应该有办法--但是提示框和那个不太一样,估计需要研究一下 ...

最新文章

  1. mysql获取删除的条数_如何从mysql表中删除数百万条记录而不会减速
  2. libsvm的安装和使用(1)
  3. formate JAVA_JAVA String.format 方法使用
  4. java画笔覆盖在界面_Java学习笔记:swing画笔工具Graphics,刷新页面,键盘事件,随机数等【诗书画唱】...
  5. ip, tcp, udp, icmp header
  6. 【CCCC】L3-021 神坛 (30分)计算几何+求三角形面积(极角排序)
  7. HBuilderX 快捷键
  8. matlab怎么导入程序出错,Matlab导入数据时出错!十分困扰!
  9. 夜深人静写算法【递归】
  10. 读书笔记—中国跑步指南
  11. 百练_2801:填词
  12. Alook浏览器获取Cookie教程
  13. 电脑开机显示“Windows\system\vgaoem.fon”丢失的解决方法
  14. 董树义 近代微波测量技术_填补国内多项空白 亚洲最大微波测量实验室发布新产品...
  15. R语言导入数据文件(数据导入、加载、读取)、haven包的read_spss函数导入SPSS中的sav格式文件
  16. MATLAB——求冲激响应和阶跃响应
  17. 【培训】DAY1 软件测试概述
  18. OA自动化办公系统springboot办公系统源码
  19. 登录鉴权的各种方式及区别
  20. Bazel 国内镜像源加速下载

热门文章

  1. 55岁李连杰近照疯传:人生下半场,拼的是健康
  2. 电子计算机科学工程,计算机科学与技术学院
  3. 大学物理第一章 质点运动学详解
  4. 实现幸运抽奖——会员号的百位数字等于产生的随机数字即为幸运会员,
  5. 编号生成之snowflake雪花算法
  6. 考研公共部分科目分支分布以及计算机408分值分布
  7. 为什么现在很多年轻人愿意到北上广深打拼,即使过得异常艰苦,远离亲人,仍然义无反顾?
  8. 基于Python命令行的NBA文字直播小工具
  9. windows pipe
  10. logit方程怎么写_呆哥数学坐标系与参数方程——最全概括【1】