Когда сигнал излучается из C ++, отправляйте данные в QML

0

Как я могу это сделать: Когда signal finishedreply (из c++) отправляет переменную answerdata (из 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,...);
  • 0
    Да .. Я не знаю, как я могу отправить переменную в qml через Connect
Теги:
qt5
qml

1 ответ

1
Лучший ответ

из документации

в 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()
    }
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню