我的自定义QML给出错误:“无法分配给不存在的属性”

时间:2018-06-19 14:52:23

标签: qt plugins qml

这是我的.h文件:

#ifndef FDR_TCPSOCKET_H
#define FDR_TCPSOCKET_H
#include <QObject>
#include <QTcpSocket>


class FDR_TCPSocket : public QObject{
    Q_OBJECT

public:
    QTcpSocket* _socket;

    FDR_TCPSocket(QObject* parent = Q_NULLPTR){
        // Create the socket object.
        _socket = new QTcpSocket(parent);

        // Add events to the socket.
        addEvents();
    }

    void addEvents(){
        _socket->connect(_socket, &QTcpSocket::connected, [=]{
            emit Connected();
        });
    }

signals:
    void Connected();

public slots:
    // ...
};

#endif // FDR_TCPSOCKET_H

这是我的QML:

import com.fedartech.qmlsockets 1.0
...
FDR_TCPSocket{
        onConnected: { ... } <<<========== GIVES ERROR
}

但是它给出了这个错误:

  

无法分配给不存在的属性“ onConnected”


(顺便说一句,这里是寄存器:)

qmlRegisterType<FDR_TCPSocket>("com.fedartech.qmlsockets", 1, 0, "FDR_TCPSocket");

为什么会这样?我真的不知道。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

我的天哪...简单的答案。

我将Connected()信号更改为connected()。 (首字母小写)

现在可以了...