热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

QMLListView定制滚动条

ListView可以设置默认的滚动条,但默认的滚动条往往不符合我们的要求,所以可以自已定制效果不同的滚动条,下面是代码示例:

ListView可以设置默认的滚动条,但默认的滚动条往往不符合我们的要求,所以可以自已定制效果不同的滚动条,下面是代码示例:

//MyListView.qmlimport QtQuick 2.12
import QtQuick.Controls 2.12Item {id: rootItemwidth: 350height: 400ListModel {id: listRouteModelListElement {titleText: qsTr("标题0"); titleColor: "white"}ListElement {titleText: qsTr("标题1"); titleColor: "white"}ListElement {titleText: qsTr("标题2"); titleColor: "white"}ListElement {titleText: qsTr("标题3"); titleColor: "white"}ListElement {titleText: qsTr("标题4"); titleColor: "white"}ListElement {titleText: qsTr("标题5"); titleColor: "white"}ListElement {titleText: qsTr("标题6"); titleColor: "white"}ListElement {titleText: qsTr("标题7"); titleColor: "white"}ListElement {titleText: qsTr("标题8"); titleColor: "white"}ListElement {titleText: qsTr("标题9"); titleColor: "white"}ListElement {titleText: qsTr("标题10"); titleColor: "white"}ListElement {titleText: qsTr("标题11"); titleColor: "white"}ListElement {titleText: qsTr("标题12"); titleColor: "white"}ListElement {titleText: qsTr("标题13"); titleColor: "white"}ListElement {titleText: qsTr("标题14"); titleColor: "white"}ListElement {titleText: qsTr("标题15"); titleColor: "white"}ListElement {titleText: qsTr("标题16"); titleColor: "white"}ListElement {titleText: qsTr("标题17"); titleColor: "white"}ListElement {titleText: qsTr("标题18"); titleColor: "white"}ListElement {titleText: qsTr("标题19"); titleColor: "white"}ListElement {titleText: qsTr("标题20"); titleColor: "white"}ListElement {titleText: qsTr("标题21"); titleColor: "white"}ListElement {titleText: qsTr("标题22"); titleColor: "white"}ListElement {titleText: qsTr("标题23"); titleColor: "white"}ListElement {titleText: qsTr("标题24"); titleColor: "white"}}ListView{id:listViewclip: truewidth: 410;height: 380anchors.bottomMargin: 2model: listRouteModel;focus: truedelegate: tabDelegate}//滚动条Rectangle {id: scrollbarx:400; y:0width: 10; height: 380radius: 10//按钮Rectangle {id: buttonx:0y: listView.visibleArea.yPosition * scrollbar.heightwidth: 10height: listView.visibleArea.heightRatio * scrollbar.heightcolor: "#818b81"radius: 10//鼠标区域MouseArea {id: mouseAreaanchors.fill:buttondrag.target: buttondrag.axis: Drag.YAxisdrag.minimumY: 0drag.maximumY: scrollbar.height//拖动onMouseYChanged: {listView.contentY = button.y / scrollbar.height * listView.contentHeight}}}}//ComponentComponent {id: tabDelegateRectangle {width: 100; height: 25;color: (listView.currentIndex === index) ? "blue": "green"//标题Text {width: parent.width - 3; height: 25;anchors.left: parent.left;anchors.leftMargin: 0;anchors.top: parent.topanchors.topMargin: 0font.pixelSize: 16;color: (listView.currentIndex === index) ? "red" : titleColortext: titleTexthorizontalAlignment: Text.AlignHCenter; //文字水平居中对齐verticalAlignment: Text.AlignVCenter;//文字垂直居中对齐}MouseArea {anchors.fill: parentonClicked: {listView.currentIndex = indexconsole.log("clicked currentIndex================" + listView.currentIndex)}}}}//end Component}

//main.qml
import QtQuick 2.12
import QtQuick.Window 2.12Window {visible: truewidth: 640height: 480title: qsTr("Hello World")MyListView {id:myListViewwidth: 350height: 400anchors.top: parent.topanchors.topMargin: 20anchors.left: parent.leftanchors.leftMargin: 20}
}

运行效果:

 


推荐阅读
  • 本文介绍了闭包的定义和运转机制,重点解释了闭包如何能够接触外部函数的作用域中的变量。通过词法作用域的查找规则,闭包可以访问外部函数的作用域。同时还提到了闭包的作用和影响。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • C# 7.0 新特性:基于Tuple的“多”返回值方法
    本文介绍了C# 7.0中基于Tuple的“多”返回值方法的使用。通过对C# 6.0及更早版本的做法进行回顾,提出了问题:如何使一个方法可返回多个返回值。然后详细介绍了C# 7.0中使用Tuple的写法,并给出了示例代码。最后,总结了该新特性的优点。 ... [详细]
  • 本文介绍了在wepy中运用小顺序页面受权的计划,包含了用户点击作废后的从新受权计划。 ... [详细]
  • 本文介绍了如何使用vue-awesome-swiper组件,包括在main.js中引入和使用swiper和swiperSlide组件,以及设置options和ref属性。同时还介绍了如何在模板中使用swiper和swiperSlide组件,并展示了如何通过循环渲染swipes数组中的数据,并使用picUrl属性显示图片。最后还介绍了如何添加分页器。 ... [详细]
  • 本文介绍了一款名为TimeSelector的Android日期时间选择器,采用了Material Design风格,可以在Android Studio中通过gradle添加依赖来使用,也可以在Eclipse中下载源码使用。文章详细介绍了TimeSelector的构造方法和参数说明,以及如何使用回调函数来处理选取时间后的操作。同时还提供了示例代码和可选的起始时间和结束时间设置。 ... [详细]
  • 如何在HTML中获取鼠标的当前位置
    本文介绍了在HTML中获取鼠标当前位置的三种方法,分别是相对于屏幕的位置、相对于窗口的位置以及考虑了页面滚动因素的位置。通过这些方法可以准确获取鼠标的坐标信息。 ... [详细]
  • 使用eclipse创建一个Java项目的步骤
    本文介绍了使用eclipse创建一个Java项目的步骤,包括启动eclipse、选择New Project命令、在对话框中输入项目名称等。同时还介绍了Java Settings对话框中的一些选项,以及如何修改Java程序的输出目录。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • javascript  – 概述在Firefox上无法正常工作
    我试图提出一些自定义大纲,以达到一些Web可访问性建议.但我不能用Firefox制作.这就是它在Chrome上的外观:而那个图标实际上是一个锚点.在Firefox上,它只概述了整个 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
author-avatar
依然yang梓枫东_811
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有