此示例演示了一个自定义滚动条的方法。

自定义滚动条:

import QtQuick 2.0Item
{id: scrollBarproperty real position//范围是 0.0 - 1.0property real pageSize//范围是 0.0 - 1.0property int orientation : Qt.Vertical//浅色半透明背景Rectangle{id: backgroundanchors.fill: parentradius: orientation === Qt.Vertical ? (width/2 - 1) : (height/2 - 1)color: "white"opacity: 0.3}//滑块Rectangle{x: orientation === Qt.Vertical ? 1 : (scrollBar.position * (scrollBar.width-2) + 1)y: orientation === Qt.Vertical ? (scrollBar.position * (scrollBar.height-2) + 1) : 1width: orientation === Qt.Vertical ? (parent.width-2) : (scrollBar.pageSize * (scrollBar.width-2))height: orientation === Qt.Vertical ? (scrollBar.pageSize * (scrollBar.height-2)) : (parent.height-2)radius: orientation === Qt.Vertical ? (width/2 - 1) : (height/2 - 1)color: "black"opacity: 0.7}
}

简单的代码,定义一个半透明的背景和在其上方的滑块。

主界面:

import QtQuick 2.0Rectangle {width: 640height: 480Flickable {id: viewanchors.fill: parentcontentWidth: picture.widthcontentHeight: picture.heightImage{id: picturesource: "pics/niagara_falls.jpg"asynchronous: true}//仅在 view 移动时显示滚动条//movingVertically、movingHorizontally当用户拖动或轻弹视图时,视图当前是否在垂直、水平方向移动。states: State{name: "ShowBars"when: view.movingVertically || view.movingHorizontallyPropertyChanges{verticalScrollBar.opacity: 1horizontalScrollBar.opacity: 1}}transitions: Transition{NumberAnimation { properties: "opacity"; duration: 400 }}}//垂直滚动条ScrollBar{id: verticalScrollBarwidth: 12; height: view.height-12anchors.right: view.rightopacity: 0orientation: Qt.Verticalposition: view.visibleArea.yPositionpageSize: view.visibleArea.heightRatio}//水平滚动条ScrollBar{id: horizontalScrollBarwidth: view.width-12; height: 12anchors.bottom: view.bottomopacity: 0orientation: Qt.Horizontalposition: view.visibleArea.xPositionpageSize: view.visibleArea.widthRatio}
}

主窗口放置一个 Flickable,水平滚动条放在下面,垂直滚动条放在左边。

默认滚动条都是隐藏的,当拖动 Flickable 的视图时,滚动条显示出来。显示的过程使用动画效果。

滚动条的自定义属性position、pageSize绑定 Flickable 可见区域组的相关属性从而确定滚动条应该处于的位置。

这里没有使用鼠标操作的类型,即滚动条不参与交互只是用来显示视图当前位置。

Qt官方示例:UI Components: Scroll Bar Example(自定义滚动条)相关推荐

  1. Qt官方示例:UI Components: Dial Control Example

    这个示例演示了一个简单的自定义仪表盘组件. import QtQuick 2.2 import QtQuick.Window 2.1Rectangle {color: "#545454&qu ...

  2. Qt 官方示例 | 这几个 QML 版的 Hello World 你学会了吗?

    .我是老吴,一枚光荣的嵌入式底层劳动人民. 作为一名 C++ 手残党的我,又来分享 Qt 的学习心得啦. 学习 Qt 的最佳途径是阅读官方的手册和示例, 今天要分享的是 Qt 官方提供的几个 Qt Q ...

  3. Qt官方示例-QLineEdit编辑器

    基于QLineEdit而写的文本单行编辑器.   上手使用了该编辑器示例,并归纳出以下主要功能分享给大家. 回显模式   根据不同的场合显示字符的不同显示模式,比较常用的模式有密码模式. 使用接口: ...

  4. Qt官方示例-正则测试工具

    该正则测试工具(regularexpression)是基于Qt 5.0新引入的QRegularExpression类实现的.   QRegularExpression实现与Perl兼容的正则表达式,支 ...

  5. Qt官方示例-虚拟键盘使用

    这是一个使用Qt虚拟键盘的QML文本输入示例.   该示例提供两种使用方式:一种用于桌面平台,另一种用于嵌入式平台,本例采用嵌入式平台方式显示.它们区别是前者脱离窗口应用于全局,后者依附于窗口. di ...

  6. Qt官方示例-计算器

    该示例显示了如何使用信号和槽来实现计算器小部件的功能,以及如何使用QGridLayout将子小部件放置在网格中. 通过绑定不同的按钮和不同的槽函数实现计算功能. private slots:void ...

  7. Qt官方示例-速度仪表盘

    该刻度盘控件为一个速度仪表盘. 预览 运行演示 分析 采用Qml语言实现: 使用到了图片素材(刻度盘,指示器,指示器阴影,覆盖层): 它结合了Image元素,Rotation变换和SpringAnim ...

  8. Qt官方示例-数字时钟

    基于QLCDNumber实现的LCD的时钟显示.   DigitalClock继承于QLCDNumber,并实现一个槽函数showTime()用来定时更新时钟显示: class DigitalCloc ...

  9. Qt官方示例-拖动图标

    拖动图标示例显示了如何在同一应用程序中的小部件之间以及不同应用程序之间拖放图像数据.   在使用拖放的许多情况下,用户开始从特定的窗口小部件拖放,并将有效负载拖放到另一个窗口小部件上.在此示例中,我们 ...

最新文章

  1. Keil编译报错:Cannot open include file: 'stdbool.h': No such file or directory问题解决
  2. shell scripts 之 代码量统计
  3. SAP CRM WebClient UI,如何快速定位到抛出错误消息的那一行代码
  4. java的回文是什么_Java实现回文判断
  5. 第67课 选择排序 例67.1 《小学生C++编程入门》
  6. hbase1.1.1 连接集群_hbase1.2.3集群搭建
  7. Proteus中8259的仿真[无dos,纯手工]
  8. 微星笔记本win键失灵了怎么解决
  9. 路由器配置vlan桥接
  10. php时间戳转换成日期格式,PHP时间戳和日期格式相互转换
  11. python怎么画简单图片-只需 45 秒,Python 给故宫画一组手绘图!
  12. OSI网络七层协议与TCPIP协议
  13. System32、SysWOW64与SysNative文件夹
  14. QT访问http服务器,并加载服务器图片
  15. cortex m3 开源_开源增强现实耳机,Steam的125M有效帐户等
  16. 冯东阳:5000元葬送了我的行业网站之梦
  17. 浏览器开机自启动及全屏配置
  18. 一、PostgreSQL软件安装
  19. 一种基于快速GeoHash实现海量商品与商圈高效匹配的算法
  20. 软件工程 -- E-R图

热门文章

  1. 团队项目简介-电梯演讲
  2. angular.js-服务-http-路由(5)
  3. 五大创新技术成就秦淮“绿色翘楚”
  4. 欧盟ROHS有害物质测试标准
  5. 望月新一IUT理论的科普视频:abc Conjecture and New Mathematics
  6. 怎么用matlab算磁滞,磁性材料磁化曲线和磁滞回线的Matlab绘制与拟合
  7. 期末学生HTML个人网页作业作品~蓝色的异清轩响应式个人博客模板源码~bootstrap响应式博客网站模板html...
  8. C++里的clock()函数介绍
  9. 使用 WordPress快速个人建站指南
  10. 欧克:优秀网站是如何炼成的