首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何将C ++中另一个类添加到ListView,QML中的数据显示出来?

在QML中,可以通过使用ListView和ListModel来显示C++中的数据。

首先,需要在C++中创建一个类,该类将作为数据模型。假设我们有一个名为Person的类,具有name和age属性:

代码语言:txt
复制
// person.h
#ifndef PERSON_H
#define PERSON_H

#include <QObject>

class Person : public QObject
{
    Q_OBJECT
    Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged)
    Q_PROPERTY(int age READ age WRITE setAge NOTIFY ageChanged)

public:
    explicit Person(QObject *parent = nullptr);

    QString name() const;
    void setName(const QString &name);

    int age() const;
    void setAge(int age);

signals:
    void nameChanged();
    void ageChanged();

private:
    QString m_name;
    int m_age;
};

#endif // PERSON_H
代码语言:txt
复制
// person.cpp
#include "person.h"

Person::Person(QObject *parent) : QObject(parent), m_age(0)
{
}

QString Person::name() const
{
    return m_name;
}

void Person::setName(const QString &name)
{
    if (m_name == name)
        return;

    m_name = name;
    emit nameChanged();
}

int Person::age() const
{
    return m_age;
}

void Person::setAge(int age)
{
    if (m_age == age)
        return;

    m_age = age;
    emit ageChanged();
}

接下来,在QML中创建一个ListView,并使用ListModel作为数据模型。在ListView的delegate中,可以访问C++中的属性。

代码语言:txt
复制
import QtQuick 2.0

ListView {
    width: 200
    height: 400

    model: ListModel {
        ListElement {
            name: "John"
            age: 25
        }
        ListElement {
            name: "Alice"
            age: 30
        }
    }

    delegate: Item {
        width: parent.width
        height: 50

        Text {
            text: model.name
            anchors.verticalCenter: parent.verticalCenter
            anchors.left: parent.left
        }

        Text {
            text: model.age
            anchors.verticalCenter: parent.verticalCenter
            anchors.right: parent.right
        }
    }
}

在这个例子中,我们使用ListModel作为数据模型,并在model属性中定义了两个ListElement,每个ListElement代表一个Person对象。在delegate中,我们使用Text组件来显示name和age属性。

这样,当QML界面加载时,ListView将会显示C++中的数据。

腾讯云相关产品和产品介绍链接地址:

请注意,以上链接仅供参考,具体产品选择应根据实际需求进行评估。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券