Quantcast
Channel: Qt DevNet forums: Qt Quick 1283365070**
Viewing all articles
Browse latest Browse all 4972

Using C++ signals in QML

$
0
0
Hi, I am trying to use C++ signals with custom object in QML. Please see example: 1) I have class person:  class person : public QObject {     Q_OBJECT     Q_PROPERTY(QString myStr READ myStr WRITE setErrorMessage NOTIFY changed) public:     explicit person(QObject *parent = 0);     person(const person &copy);       ~person();       QString myStr() const{         return m_myStr;     }     void setErrorMessage(const QString &str);   signals:     void changed();   public slots:   public:     QString m_myStr; }; 2) Also I have manager class  class manager : public QObject {     Q_OBJECT public:     explicit manager();     ~manager();   signals:     void changeStr(const person &pr);   public slots:     void needChangeStr(); };   manager::manager() {   }   manager::~manager() {   }   void manager:: needChangeStr() {     person per;     per.setErrorMessage("test");     emit changeStr(per); } 3) In main.cpp I have registerd this classes:  int main(int argc, char *argv[]) {     QApplication app(argc, argv);       qRegisterMetaType<person>("person");         qmlRegisterType<manager>("core.m.com", 1, 0, "Manager");     qmlRegisterType<person>("core.m.com", 1, 0, "Person");       QQmlApplicationEngine engine;     engine.load(QUrl(QStringLiteral("qrc:/main.qml")));       return app.exec(); } 4) And In qml file I use it:   Manager     {         id: man         onChangeStr:         {            console.info(pr.myStr)         }     } But I can not get myStr. The following error logs in output: qt.winrtrunner.app: undefined. So could you help me with it ? How should I use C++ signals in qml with custom parameters?

Viewing all articles
Browse latest Browse all 4972

Latest Images

Trending Articles



Latest Images