当从C ++发出的信号将数据发送到QML时

时间:2014-06-05 09:12:00

标签: c++ qml qt5

我怎么能这样做: 当信号finishreply(从c ++)发送变量replydata(从c ++)到TextArea(qml)

我怎么能连接这个?也许Q_PROPERTY是一个好方法? 我使用Qt 5.3

    QQmlApplicationEngine engine;
engine.load(QUrl(QStringLiteral("qrc:///main.qml")));

SendGetSMS *Connection = new SendGetSMS();


engine.rootContext()->setContextProperty("abc1", Connection);

QObject::connect(Connection,&SendGetSMS::finishedReply,engine,...);

1 个答案:

答案 0 :(得分:1)

来自the documentation

在c ++中:

class Message : public QObject
{
    Q_OBJECT
    Q_PROPERTY(QString author READ author WRITE setAuthor NOTIFY authorChanged)
public:
    void setAuthor(const QString &a) {
        if (a != m_author) {
            m_author = a;
            emit authorChanged();
        }
    }
    QString author() const {
        return m_author;
    }
private:
    QString m_author;
};

Message msg;
engine.rootContext()->setContextProperty("msg", &msg);
qml中的

Text {
    width: 100; height: 100
    text: msg.author    // invokes Message::author() to get this value

    Component.onCompleted: {
        msg.author = "Jonah"  // invokes Message::setAuthor()
    }
}