• QML Delegate中访问该持有者的方式 附加属性(转载)


    http://blog.csdn.net/yuxiaohen/article/details/17226971
     
    用法很奇葩记录一下,实测可以,用于弱化delegate与持有者的依赖
    delegate: Component {
                Rectangle {
                    id:wrapper
                     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 才行
  • 相关阅读:
    【vim使用】替换文本
    Ubuntu中将vim中查找设置为高亮
    【vim使用】查找文本
    【vim使用】缩进 和 重复执行上一次命令
    【vim使用】替换命令
    【vim使用】复制和粘贴
    【vim使用】撤销和恢复撤销
    【vim使用】删除文本
    【vim使用】选中文本(可视模式)
    【vim使用】利用标记返回之前需要编辑的代码位置
  • 原文地址:https://www.cnblogs.com/aoldman/p/4015665.html
Copyright © 2020-2023  润新知