对QObject进行子分类并创建QList
SubClassing QObject and creating QList
这是我的代码:http://pastebin.com/57hXKCYm
这是我的错误:main.cpp:32:error:对`vtable for SongObject'的未定义引用
当我从SongObject类中删除Q_OBJECT时,错误消失,应用程序启动,但当在QML中使用songList时,它会说名称未定义,颜色未定义。这是我的QML:
ListView {
width: 100; height: 100
model: allSongObjects
delegate: Rectangle {
height: 25
width: 100
color: {
console.log(model.modelData.name)
return color
}
Text { text: name }
}
}
以下是我如何将歌曲列表传递给QML:
engine.rootContext()->setContextProperty("allSongObjects", QVariant::fromValue(getAllSongs(db)));
我是C++的新手,所以我相信这个问题对这里的人来说会很明显。我很感激能得到的任何帮助。我只想知道为什么我会遇到这些问题,以及我的代码应该如何,当我看到更正的代码时,我可能会明白为什么会这样。
谢谢你的帮助。
头文件写入错误。校正(和工作)的标题是
#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
相关文章:
- 如何创建一个CMake变量,除非显式重写,否则使用默认值
- 使用std::multimap迭代器创建std::list
- 在全局变量中保存类的实例以重新创建类(创建"backup")
- 使用CMake创建QML插件
- 如何在c++中为模板函数实例创建快捷方式
- 在C++中,是否可以基于给定的标识符创建基类的新实例,反之亦然
- 创建一个函数以在输入为负数或零时输出字符串.第一次执行用户定义的函数
- OpenCV EqualizeHist()从彩色图像创建黑白图像
- 试图在visual studio上用C++创建一个桌面应用程序
- std::threads可以从Windows DLL中的全局变量创建/销毁吗?
- 如何在C++20中创建模板别名的推导指南
- Qt C++ - 创建 QList<Myclass> - 不是参数 'T 的有效模板类型参数
- 创建返回 QList <int>的函数
- 警告从结构的 QList 中删除动态创建的结构
- 对QObject进行子分类并创建QList
- 如何创建具有修复索引的QList
- 在c++ /QT中创建抽象类对象的QList
- 从普通数组创建QList
- 无法使用自定义类创建 QList
- 如何创建一个QList的深度拷贝(Qt 4.8)