当前位置: 首页 > news >正文

QML —— ListView代理,附横向滑动效果(附源码)

代码效果

在这里插入图片描述

说明

     在Qt 中我们要想利用视图显示一些数据,并不是将这些数据直接放到视图中的,因为视图只管显示,它不存储数据。我们的数据要放在数据模型中。但是数据模型中只是存放数据,它并不涉及数据的显示方式。所以,我们还要用一个叫做代理的东西来设置数据模型中的数据怎样在视图中显示。

在这里插入图片描述

源码
import QtQuick 2.9
import QtQuick.Window 2.2
import QtQuick.Controls 2.0Window
{visible: truewidth: 640height: 560title: qsTr("ListView测试DEMO")ListModel{id: listModelListElement{text: qsTr("陕西天气预报 - 西安市")}ListElement{text: qsTr("陕西天气预报 - 汉中市")}ListElement{text: qsTr("陕西天气预报 - 宝鸡市")}ListElement{text: qsTr("陕西天气预报 - 延安市")}ListElement{text: qsTr("陕西天气预报 - 榆林市")}ListElement{text: qsTr("陕西天气预报 - 安康市")}ListElement{text: qsTr("陕西天气预报 - 咸阳市")}ListElement{text: qsTr("陕西天气预报 - 铜川市")}ListElement{text: qsTr("陕西天气预报 - 商洛市")}}ListView{id: listviewwidth: parent.widthheight: parent.heightanchors.fill: parentmodel: listModeldelegate: listDelegate}Component{id: listDelegateRectangle{id: listItemwidth: parent.widthheight: 40Text{id: textfont.family: "simsun"font.pointSize: 12height: parent.heightwidth: parent.width - delBtn.widthtext: model.textcolor: "green"verticalAlignment: Text.AlignVCenterMouseArea{property point clickPos: "0,0"anchors.fill: parentonPressed:{///按下鼠标:当前鼠标的位置clickPos  = Qt.point(mouse.x,mouse.y);}onReleased:{///松开鼠标:var delta = Qt.point(mouse.x-clickPos.x, mouse.y-clickPos.y)console.debug("delta.x: " + delta.x);if ((delta.x < 0) && (aBtnShow.running === false) && (delBtn.width == 0)){aBtnShow.start();}else if ((delta.x > 0) && aBtnHide.running === false && (delBtn.width > 0)){aBtnHide.start();}}}}Rectangle{color: "#AAAAAA"height: 1width: parent.widthanchors.bottom: parent.bottom}Rectangle{id: delBtnheight: parent.heightwidth: 0color: "#EE4040"anchors.right: parent.rightText{font.family: "microsoft yahei"font.pointSize: 12anchors.centerIn: parenttext: qsTr("删除")color: "#ffffff"}MouseArea{anchors.fill: parentonClicked:{listview.model.remove(index);}}}PropertyAnimation{id: aBtnShowtarget: delBtnproperty: "width"duration: 100from: 0to: 160}PropertyAnimation{id: aBtnHidetarget: delBtnproperty: "width"duration: 100from: 160to: 0}}}
}

关注

笔者 - jxd


http://www.mrgr.cn/news/70526.html

相关文章:

  • synchronized锁失灵?
  • LeetCode100之相交链表(160)--Java
  • python入门3
  • python opencv3
  • 用K8S部署nginx负载均衡
  • 搜索引擎的演变与未来发展趋势分析
  • 游戏引擎中LOD渲染技术
  • 【Linux探索学习】第十二弹——初识进程:进程的定义、描述和一些简单的相关操作
  • 软件测试计划和测试用例详解
  • Polybase要求安装orcale jre 7
  • 【随笔】做售前工程师的一些感悟
  • 卡内基音乐厅回响肖邦旋律:旅美钢琴学者何超与导师洪勋的师生情缘
  • Cesium基础-(Entity)-(label )
  • ggalign:热图等复杂组合图及图形数据对齐的 ggplot2 扩展
  • 计算机在启动一直到系统加载完成期间进行了哪些操作
  • 【缠论箱体预测】主图指标 缠论自动划箱体 看透压力支撑对趋势胸有成竹 (电脑+手机源码)
  • 206面试题(47~60)
  • fask的一个程序
  • 稳恒磁场(2)
  • c语言学习11跳转结构
  • 软件测试常用设计模式
  • Java项目实战II基于微信小程序的学生公寓电费信息管理系统(开发文档+数据库+源码)
  • QtWebServer
  • 【WRF模拟】全过程总结:WPS预处理及WRF运行
  • 展望:多模态融合与marker推断
  • 【Android、IOS、Flutter、鸿蒙、ReactNative 】标题栏