【发布时间】:2015-11-10 11:04:30
【问题描述】:
自 Javascript 以来,我在访问 QList 对象时遇到了一点问题。我有一个 C++ 类,它允许我从 QML/JS 开始执行 SQL 查询。一切正常,我在 C++ 中得到了结果。
我的问题是我向 QML 返回了一个 QList 对象。 这是我在 C++ 中返回 SQL 结果的函数(注意是一个具有不同属性的简单对象):
QList<Note> Storage::setQuery(QString query)
{
QList<Note> noteItems;
QSqlQuery qsqlQuery;
bool ok = qsqlQuery.exec(query);
if(!ok)
{
qDebug() << "Error setQuery" << m_sqlDatabase.lastError();
}
else
{
while (qsqlQuery.next()) {
Note my_note;
QString note = qsqlQuery.value("message").toString();
my_note.setMessage(note);
noteItems.append(my_note);
}
}
return noteItems;
}
但是当我从 JS 调用这个函数时,我得到了这个错误:Unknown method return type: QList<Note>
问题是返回类型,QML JS 不知道类型QList<Object>,为什么?我做错了什么
【问题讨论】:
-
我能问你为什么要在
Note对象中包装一个字符串吗?你不能简单地返回裸字符串吗? -
Tthis is an example in my code 注意该对象由多个属性组成,例如 Int、String 等 @skypjack
-
@simon 你应该试试我的回答。
-
今晚我试试你的解决方案@Ansh Kumar
标签: javascript c++ qt qml