【发布时间】:2012-02-08 16:29:18
【问题描述】:
我想从 C++ 向我的 QML 文件中的插槽发送信号。
我已经让它在没有原始类型参数的情况下工作,但如果我想向我的 QML Slot 发送QString,我在连接时会出错。
我在 main.cpp 中连接
QObject *contentView = rootObject->findChild<QObject*>(QString("contentView"));
QObject::connect(&myObj, SIGNAL(finishedGatheringDataForItem(QString)),
contentView, SLOT(updateViewWithItem(QString)));
我的 qml 文件的相关部分
Rectangle {
objectName: "contentView"
function updateViewWithItem(string) { console.log('got some Items'); } // slot
}
错误:
Object::connect: No such slot QDeclarativeRectangle_QML_2::updateViewWithItem(QString)
【问题讨论】:
-
您的 updateViewWithItem 中没有 QString 参数? (错误指出)
-
抱歉,测试后忘记重新添加了。仍然无法正常工作。我试过 updateViewWithItem(QString) 和 updateViewWithItem(string)。
-
来自 C++ 的信号是指 C++ 库或 Qt 类???
-
谢谢,这个问答对我很有帮助。为了将来参考,一个很好的例子现在在这里:github.com/andrewrjones/qml2-to-cpp-and-back-signals
标签: c++ qt qml signals-slots