如何将 QML 信号连接到 QML 文件中的 C++ 插槽

How can I connect a QML signal to a C++ slot within the QML file

根据,我可以在qml文件中连接qml信号和c++槽,而无需在c++文件中连接QObject::connect。

但我得到的只是一个错误 Expected token ':' in

Window {
    signal sizeChange(int y, int width, int height)
    visible: true
    width: 1920
    height: 1080

    sizeChange.connect(cefWindow.resizeCEFWindow)
                      ^
                      | Expected token ':'
}

有几种不同的方法可以做到这一点。您可以将代码放入@Amfasis 提到的函数中:

Window {
    Component.onCompleted: {
        sizeChange.connect(cefWindow.resizeCEFWindow)
    }
}

或者您可以直接从信号处理程序调用您的 C++ 插槽,如下所示:

onSizeChange: {
    cefWindow.resizeCEFWindow()
}

我自己一般比较喜欢第二种方法