sum*_*itl 0 c++ database qml blackberry-10 blackberry-cascades
我正在我的项目中进行数据库操作.我有一个文件'dataBaseMaster',它有一个函数updateIntoTestResult().我通过设置这样的上下文创建了一个dbMasterObject
qml->setContextProperty("dbMasterObject", dbMasterObject);
但是当我尝试在main.qml中调用此updateIntoTestResult()方法时,我收到这样的错误
TypeError: Result of expression 'dbMasterObject.updateIntoTestResult' [undefined] is not a function
DatabaseMaster.hpp
class DatabaseMaster : public QObject
{
public:
Q_OBJECT
public:
void updateIntoTestResult(int id, int result);
};
Run Code Online (Sandbox Code Playgroud)
DatabaseMaster.cpp
void DatabaseMaster::updateIntoTestResult(int id, int result) {
QSqlDatabase database = QSqlDatabase::database();
QSqlQuery query(database);
query.prepare("update "+TEST_RESULT_MASTER+" set "+RESULT+" = :"+RESULT+" where "+TEST_ID+"= :"+TEST_ID+";");
query.bindValue(":"+RESULT, result);
query.bindValue(":"+TEST_ID, id);
query.exec();
Run Code Online (Sandbox Code Playgroud)
在main.qml中调用
dbMasterObject.updateIntoTestResult(MICROPHONE_ID, TEST_STATE_PASS)
Run Code Online (Sandbox Code Playgroud)
请帮帮我,为什么我得到这个错误,而我已正确宣布该方法.
提前致谢..!!
updateIntoTestResultqml系统不知道它,因为它不是一个插槽或Q_INVOKABLE.
简单修复 - 插入Q_INVOKABLE:
class DatabaseMaster : public QObject
{
public:
Q_OBJECT
public:
Q_INVOKABLE void updateIntoTestResult(int id, int result);
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
981 次 |
| 最近记录: |