Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

QML-Project in cpp einbinden



  • Hallo,
    ich habe ein QML-Project das mir in einem Rectangle RSS-Feeds anzeigt. Analog zum RSS-Example von Qt.
    Das Projekt kann ich mit dem Creator auch ausführen und läuft einwandfrei.
    Nun möchte ich das QML in eine MainWindow-Applikation einbauen bzw. dort z.B. per Button-Click aufrufen.

    Leider hab ich in der Doku noch keinen Weg gefunden, wie das zu bewerkstelligen ist.

    projekt.pro
    QT += core gui quick network qml

    main.cpp
    QGuiApplication app(argc, argv);
    QQmlApplicationEngine engine;
    engine.load(QUrl::fromLocalFile("RssInfo.qml"));
    return app.exec();

    Fehlermeldung
    loaded library "crypto"
    loaded library "ssl"
    qt.network.ssl: QSslSocket: cannot resolve SSL_CTX_set_ciphersuites
    qt.network.ssl: QSslSocket: cannot resolve SSL_set_psk_use_session_callback
    qt.network.ssl: QSslSocket: cannot call unresolved function SSL_set_psk_use_session_callback
    qt.network.ssl: QSslSocket: cannot call unresolved function SSL_set_psk_use_session_callback
    qt.network.ssl: QSslSocket: cannot call unresolved function SSL_set_psk_use_session_callback

    Die Meldung kommt auch wenn ich in meiner qml "nur" ein einfaches ApplicationWindow erstelle.

    ApplicationWindow {
    id: applicationWindow
    visible: true
    width: 640
    height: 400
    title: qsTr("Rss-Feed")
    }
    Zumindest wird das mit dem build-QML-Preview angezeigt. Irgendwie komm ich nicht weiter.....


  • Moderators

    @Linex said in QML-Project in cpp einbinden:

    QUrl::fromLocalFile("RssInfo.qml")

    Hi, ich verstehe nicht ganz deine Situation, vielleicht würdest du da nochmal ein wenig ausholen und mehr erklären

    aber von dem was ich sehe, würde ich sagen QUrl::fromLocalFile("RssInfo.qml") ist der Übeltäter.

    Die fertige exe Datei liegt nicht im selben Verzeichnis wie dein Projekt -> wird in dem Ordner die RssInfo.qml nicht finden, weil nicht vorhanden.

    Ich würde empfehlen das Qt Ressourcen System zu nutzen und die QML Datei da rein packen und von dort zu laden



  • Danke :-)
    War tatsächlich am Pfad gelegen. Hab's über die Resouces gelöst und geht.


  • Moderators

    @Linex Super!

    Nicht vergessen, TopicTools verwenden und Topic auf gelöst stellen 😉



  • Noch eine kurze Frage. Kann ich ein QML auf ein Widget legen?


  • Moderators

    @Linex

    sicher

    https://doc.qt.io/qt-5/qquickwidget.html
    https://doc.qt.io/qt-5/qquickview.html

    aber ich hab 1- 2 Fehler in gemischten Projekten gefunden(hauptsächlich für Mobile Endgeräte ) also, mit Vorsicht genießen 😉



  • Danke. :-)


Log in to reply