首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SubClassing QObject与创建QList

SubClassing QObject与创建QList
EN

Stack Overflow用户
提问于 2015-12-12 17:01:12
回答 1查看 127关注 0票数 0

这是我的代码:http://pastebin.com/57hXKCYm

以下是我的错误: main.cpp:32: error:对“`vtable for SongObject”的未定义引用

当我从Q_OBJECT类中删除SongObject时,错误就会消失,应用程序就会启动,但是在QML中使用songList时,它会说名称是未定义的,颜色是未定义的。这是我的QML:

代码语言:javascript
复制
ListView {
        width: 100; height: 100

        model: allSongObjects
        delegate: Rectangle {
            height: 25
            width: 100
            color: {
                console.log(model.modelData.name)
                return color
            }
            Text { text: name }
        }
    }

下面是如何将songList传递给QML:

代码语言:javascript
复制
 engine.rootContext()->setContextProperty("allSongObjects", QVariant::fromValue(getAllSongs(db)));

我是C++的新手,所以我确信这个问题对这里的人来说是非常明显的。我很感激我能得到的任何帮助。我只想知道为什么我会遇到hte问题,以及我的代码应该是怎样的,当我看到修正的代码时,我可能会理解为什么应该是这样的。

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-14 16:16:17

头文件写得不正确。更正(和工作)标头是

代码语言:javascript
复制
#ifndef SONG_OBJECT_MAIN
#define SONG_OBJECT_MAIN

#include <QObject>

class SongObject : public QObject
{
    Q_OBJECT

    Q_PROPERTY(QString path READ path CONSTANT)
    Q_PROPERTY(QString title READ title CONSTANT)
    Q_PROPERTY(QString album READ album CONSTANT)
    Q_PROPERTY(QString artist READ artist CONSTANT)
    Q_PROPERTY(QString art READ art CONSTANT)
    QString m_path;
    QString m_title;
    QString m_album;
    QString m_artist;
    QString m_art;


    QString path() { return m_path;}
    QString title() { return m_title;}
    QString album() { return m_album;}
    QString artist() {return m_artist;}
    QString art() {return m_art;}

public:
    explicit SongObject(const QString &path, const QString &title, const QString &album, const QString &artist, const QString &art) :
        QObject(),
        m_path(path),
        m_title(title),
        m_album(album),
        m_artist(artist),
        m_art(art)
    {}

};

#endif // SONG_OBJECT_MAIN
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34242510

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档