1

我想创建一个信号,所以我有一个名为 TestCreateSignal.qml 的 qml 文件,其内容如下:

import QtQuick 2.0
Rectangle
{
    color: "red"
    width: 344
    height: 233
    signal sendMessage
    MouseArea
    {
        onClicked:
        {
            sendMessage();
        }
    }
}

我想在另一个名为 TestUseSignal.qml 的 qml 文件中使用这个信号

import QtQuick 2.0
Rectangle
{
    TestCreateSignal
    {
        sendMessage: //Error is at this line
        {
            console.log("message sendded");
        }
    }
}

但是当我想使用它时出现这样的错误

qrc:/TestUseSignal.qml:5 无法分配给不存在的属性“sendMessage”

4

1 回答 1

2

根据文档

每当发出特定信号时,都可以通过信号处理程序通知对象。信号处理程序的声明语法为on<Signal>where<Signal>是信号的名称,首字母大写。信号处理程序必须在发出信号的对象的定义中声明,并且处理程序应包含在调用信号处理程序时要执行的 JavaScript 代码块。

在你的情况下:

TestCreateSignal
{
    onSendMessage:
    {
        console.log("message sendded");
    }
}
于 2017-12-05T14:52:00.967 回答