QML C 信号插槽不起作用

qml c++ signal slot not working

本文关键字:不起作用 插槽 信号 QML      更新时间:2023-10-16

在下面的C 代码中,我加载QML文件。但是C 插槽不起作用。没有发生错误或警告,但是调试消息始终是"字符。没有" B"字符出现。你能告诉我为什么吗?谢谢。

C 侧代码

    ::::::::::::::
    view=new QDeclarativeView;
    view->setSource(QUrl("qml/groundMenu/Ground.qml"));
    rootObject = dynamic_cast<QObject*>(view->rootObject());
    QObject::connect(rootObject, SIGNAL(qmlSignal()),this, SLOT(qmlLoadedProcess()));
:::::::::::::::::
void MainWindow::qmlLoadedProcess()
{
    qDebug()<<"b";
}
//qml side code 
    Rectangle
    {
      signal qmlSignal()
      Component.onCompleted:
      {
         qmlSignal()
         console.log("a")
      }
    }

问题是 component.oncompleted 发生在您调用 Qobject :: Connect(...)之前发生。IE。当您调用 view-> setSource(...)时,创建QML中的矩形,并且在将信号连接到插槽之前,请调用 component.OnCompoent.OnCompleted 。因此, QMLLOADEDPROCESS()永远不会被调用。