QML Delegate中访问该持有者的方式 附加属性(转载)
http://blog.csdn.net/yuxiaohen/article/details/17226971
用法很奇葩记录一下,实测可以,用于弱化delegate与持有者的依赖
delegate: Component {
Rectangle {
id:wrapper
width: parent.width;
height: 30;
BorderImage {
id:bg_element
// source: wrapper.isCurrent
anchors.fill:parent;
border.left: 5; border.top: 5
border.right: 5; border.bottom: 5
}
Text {
anchors.left: parent.left;
anchors.verticalCenter: parent.verticalCenter;
anchors.leftMargin: parent.width * 0.6;
verticalAlignment: Text.AlignVCenter;
font.family: "SimSun";
text: people_name;
}
MouseArea {
anchors.fill: parent;
hoverEnabled: true;
onEntered: {
console.log("enter");
bg_element.source = "qrc:/images/images/pointer_hover.png";
}
onExited: {
console.log("exit");
bg_element.source = ""
}
onClicked: {
console.log("index",index);
wrapper.ListView.view.currentIndex = index;
console.log("current index",wrapper.ListView.view.currentIndex);
console.log("is current item",wrapper.ListView.isCurrentItem);
console.log("model:",wrapper.ListView.view.model);
console.log("clicked");
bg_element.source = "qrc:/images/images/pointer_clicked.png";
}
}
}
}
这里涉及到附加属性和属性的概念,访问附加属性时不需要element实体,感觉有点像使用class的static成员,而属性是需要element实体的.
譬如如上代码,delegate是个component,在Rectangle(也就是id为wrapper)这一作用域,才可直接访问ListView的属性(可能附加属性也是如此,没深究)
要访问的isCurrentItem是ListView的附加属性,则 wrapper.ListView.isCurrentItem 即可
要访问的currentIndex是ListView的属性,则 wrapper.ListView.view.currentIndex 才行
QML Delegate中访问该持有者的方式 附加属性(转载)的更多相关文章
- .net 中访问config的一些方式
人所缺乏的不是才干而是志向,不是成功的能力而是勤劳的意志. 哎!好久没有写博客了,今天就分享一些比较常用的对config文件的访问一些方式. 首先 引用 using System.Configurat ...
- 在一般处理文件中访问Session需要添加IRequiresSessionState(转载)
原文:http://blog.csdn.net/cdsnaspnet/article/details/5695625s 通常我们经常,通过session判定用户是否登录.还有一些临时的.重要的数据也尝 ...
- Struts2中访问web元素的四种方式
Struts2中访问web元素的四种方式如下: 通过ActionContext来访问Map类型的request.session.application对象. 通过实现RequestAware.Sess ...
- 【转载】浅析从外部访问 Kubernetes 集群中应用的几种方式
一般情况下,Kubernetes 的 Cluster Network 是属于私有网络,只能在 Cluster Network 内部才能访问部署的应用.那么如何才能将 Kubernetes 集群中的应用 ...
- delegate 中的BeginInvoke和EndInvoke方法
开发语言:C#3.0 IDE:Visual Studio 2008 一.C#线程概述 在操作系统中一个进程至少要包含一个线程,然后,在某些时候需要在同一个进程中同时执行多项任务,或是为了提供程序的性能 ...
- System.Web.Http.Cors配置跨域访问的两种方式
System.Web.Http.Cors配置跨域访问的两种方式 使用System.Web.Http.Cors配置跨域访问,众多大神已经发布了很多文章,我就不在详细描述了,作为小白我只说一下自己的使用心 ...
- 在Action 中访问web资源
1.什么是web资源: HttpServletRequest,HttpSession,ServletContext等原生的Servlet API. 2.为什么要访问web资源? B/S应用的Contr ...
- Fastreport使用经验(转)在Delphi程序中访问报表对象
Fastreport使用经验(转) 在Delphi程序中访问报表对象 最基本的方法就是frxReport1.FindObject. 然后把返回的对象强制转换成它的类型,当然,在报表中必须真的有这么个东 ...
- 在Asp.net MVC中访问静态页面
有时候由于一些特殊的需要,我们需要在MVC中访问HTML页面,假如您将这个页面放在Views中的话,去访问将会收到一个404,但是放在Views外面的目录则不受此限制. 那么我们就来解决View里面的 ...
随机推荐
- Delphi XE TStringBuilder
function T_SunnySky_SDK.JoinItems(AParamDic: TDictionary<string, string>): string; var sb : TS ...
- CentOS&.NET Core初试-1-CentOS的安装和网卡的配置
系列目录 CentOS的安装和网卡的配置 安装.NET Core SDK和发布网站 Nginx的安装和配置 安装守护服务(Supervisor) 软件环境 系统版本:CentOS Linux rele ...
- 05-oralce转换函数
to_char() 设置日期的显示格式 to_char() 进行数字格式化{如:to_char(987654321.789,'999,999,999,999,999.9999') 将数字三位一逗号显 ...
- 20164324王启元 Exp1 PC平台逆向破解
一.逆向及Bof基础实践说明 1.1实践目标 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串. 手工修 ...
- EntityFrameWork Code First 多对多关系处理
场景2: 一个文章类别(Category)下含有多篇文章(Article),而文章也可能对应多个类别 Article和Category的代码更改如下: /// <summary> /// ...
- poj 2954 Triangle
pick公式+gcd公式 #include<iostream> #include<map> #include<string> #include<cstring ...
- Bash编程(1) 基础
1. 基本知识 (1) $HOME: 当前用户的家目录 (2) `pwd`或$PWD:当前目录 (3) 脚本命名避免使用test,通过type -a test,可以查看所有匹配test的命令 gas@ ...
- Linux下安装jdk1.6
Linux中JDK1.6的安装和配置方法 一.安装 创建安装目录,在/usr/java下建立安装路径,并将文件考到该路径下: mkdir /usr/java 1.jdk-6u11-linux-i586 ...
- C# Unix时间戳转换[转载]
原文地址: C# Unix时间戳转换 遇到Unix时间戳转换的问题,遂记录下来. Unix时间戳转DateTime string UnixTime = "1474449764"; ...
- HDU 5695 ——Gym Class——————【贪心思想,拓扑排序】
Gym Class Time Limit: 6000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total S ...