Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. QML and Qt Quick
  4. Qt evet integrated with QML

Qt evet integrated with QML

Scheduled Pinned Locked Moved Solved QML and Qt Quick
2 Posts 2 Posters 200 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • D Offline
    D Offline
    Damian7546
    wrote on last edited by Damian7546
    #1

    Hi,

    I write simple application in QML and Qt. To exchnage data with visu I use SystemController class which one is registered in QML.
    In SystemuController constructor I am creating my objects like: "http networkclient", "serial slave1" etc, etc.. and in this constructor I am doing connecting beetwen them

    Now I must use key event filter., but I do not know how expose data from myKeyEventFilter object to object created in SystemController . Below is my main.cpp

    int main(int argc, char *argv[])
    {
        QGuiApplication app(argc, argv);
    
        MyKeyEventFilter myKeyEventFilter;
        app.installEventFilter(&myKeyEventFilter);
    
        //QML
        qmlRegisterType< SystemController >  ("MyController",1,0,"SystemController");
        QQmlApplicationEngine engine;
    
        const QUrl url(QStringLiteral("qrc:/main.qml"));
        QObject::connect(&engine, &QQmlApplicationEngine::objectCreated,
                         &app, [url](QObject *obj, const QUrl &objUrl) {
            if (!obj && url == objUrl)
                QCoreApplication::exit(-1);
        }, Qt::QueuedConnection);
    
        engine.load(url);
        return app.exec();
    }
    

    for example in SystemController I have:

    SystemController::SystemController(QObject *parent)
        : QObject{parent}
    {
        NetworkWorker    *networkWorker = new NetworkWorker;
      connect(networkWorker, &NetworkWorker::companyDetail, this, &SystemController::companyDetails);
    
    }
    

    So I need emit signal form myKeyEventFilter to networkWorker . And in networkWorker emit signal companyDetails to SystemController....

    I can not create second networkWorker object in main.cpp and do connect because I will have two different objects

    I would be really grateful for any tips and samples ...

    1 Reply Last reply
    0
    • JoeCFDJ Offline
      JoeCFDJ Offline
      JoeCFD
      wrote on last edited by
      #2
      engine->rootContext()->setContextProperty( "myKeyEventFilter",  &myKeyEventFilter );
      

      in your qml file
      connect myKeyEventFilter to its signal and then call a func in SystemController.

      1 Reply Last reply
      0

      • Login

      • Login or register to search.
      • First post
        Last post
      0
      • Categories
      • Recent
      • Tags
      • Popular
      • Users
      • Groups
      • Search
      • Get Qt Extensions
      • Unsolved