创建信号并使用它时,无法分配给不存在的属性

时间:2017-12-05 14:36:25

标签: qt qml qt-signals qqmlcomponent

我想创建一个信号,所以我有一个名为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”

1 个答案:

答案 0 :(得分:1)

根据docs

  

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

在你的情况下:

TestCreateSignal
{
    onSendMessage:
    {
        console.log("message sendded");
    }
}