QML 学习笔记

来源:互联网 发布:苹果发布会 mac 编辑:程序博客网 时间:2024/06/04 18:02

QML调用C++

c++类要继承QOBJECT

方法一

qmlRegisterType<mySerialPort>("io.qt.example.myserialport", 1, 0, "mySerialPort");

注册到QML环境中
QML中就可以当作普通组件使用了。
尝试的时候,怎么都不成功,最后找到原因,QML文件与C++文件要在一个目录下。不在一个目录下总报错。

方法二

qmlRegisterType<mySerialPort>("io.qt.example.myserialport", 1, 0, "mySerialPort");

这种是把一个对象实体暴露给QML,没有同一目录的限制。

Listview的使用

ListView    {        id: listvie_port        anchors.fill: parent        model:ListModel        {            id: myModel            ListElement            {                Name: "端口号"            }        }        delegate: Component        {            id: dragDelegate            Rectangle            {                id: content                anchors                {                    left: parent.left;                    right: parent.right                }                height: column.implicitHeight + 40                border.width: 2                border.color: "lightsteelblue"                radius: 2                Column                {                    id: column                    anchors { fill: parent; margins: 2 }                    Text { text: 'Port : ' + Name }                }            }        }        Component.onCompleted:        {            for (var name in mySerialPort.GetPortList)            {                myModel.append({"Name": "COM" + name})            }        }    }

参考的自带的例程,具体含义也不是全懂
ListMode类似于数据的存储

Component类似显示的定义。

原创粉丝点击