我正在尝试将一些QString
从c++
传输到QML
。以下是我到目前为止所做的步骤。
1.创建了一个继承自QObject
的类,并在其中定义了signal
。
class exampleClass: public QObject {
Q_OBJECT
signals:
void mySignal (QString myStr);
}
字符串
1.在类实现的某个地方,我emit
signal
,即
void exampleClass::exampleFtn( . . . ){
.
.
qDebug("Before transmitting Signal"); // This gets triggered
emit mySignal ("Hello from CPP");
}
型
1.在我的main.cpp
中,我已经初始化了这个类,并将其暴露给QML
。
int main(...) {
.
.
exampleClass *exampleObj= new exampleClass(&app);
Engine.rootContext()->setContextProperty("exampleObj", exampleObj);
}
型
1.最后,在QML
中,我连接了signal
,即
Window {
.
.
Connections {
target: exampleObj
function mySignal(myStr) {
console.log("signal from C++ recieved !") // Doesn't get triggered
console.log(myStr) // Doesn't get triggered
}
}
}
型
1条答案
按热度按时间c3frrgcw1#
在
Connections
中连接到名为foo
的信号的语法是function onFoo() { ... }
。在您的情况下,它将是:字符串