Interagir entre qml et c++
-
@ankou29666 je viens de le faire mais c'est toujours le même
-
je pense dans ce cas qu'il faudrait voir du côté de qt_add_qml_module dans le CMakeLists.txt
pour l'instant je n'ai instancié que du côté C++, côté QML c'est pas encore fait, donc si c'est pas ça après je sêche.
-
@ankou29666 Honnêtement je ne compris rien du tout
Jutilise qmake donc je fais CONFIG += qmltypes
QML_IMPORT_NAME = com .mycompany.Qmlcomponents
QML_IMPORT_MAJOR_VERSION = 1
et ça m'aide pas -
non c'est sûr, vous parlez en qmake, moi en cmake. forcément c'est pas la même chose. dans cmake il faut définir la variable qt_add_qml_modules, dans laquelle on met habituellement le code QML et de ce que j'ai compris c'est aussi là qu'il faut déclarer les sources et headers du nouveau composant qui sera mis à disposition en QML. il faut trouver la variable correspondante en qmake.
-
@ankou29666 non en fait après des recherches pour qmake c'est ça
CONFIG += qmltypes
QML_IMPORT_NAME = le nom du component
QML_IMPORT_MAJOR_VERSION = 1et ça m'aide pas honnêtement
-
en cmake, les fichiers du module sont définis explicitement.
Or, la documentation pour qmake ne les spécifie pas, et je ne vois pas par quel miracle qmake pourrait deviner tout seul quels sont les fichiers du module à générer. c'est assez étonnant.
-
@ankou29666 je pense que qmlRegisterType suffit
Mais c'est pas ça qui fait l'erreur -
@Fortiga Hello,
Si j'ai bien compris, le but est de charger le fichier dans la fonction onLaunchNewNotef ?
Je n'ai pas fait de qml depuis longtemps mais ne serait-il pas possible de faire quelque chose comme ci-dessous ?
function onLauncerNewNotef(filepath) { var component = Qt.createComponent("qrc:/MyEditeur.qml") // Container is the parent of editor var editor = component.createObject(container); editor.load(filepath) stack.push(editor) }
-
@Gojir4 Presque le but est de lancer le fichier texte ou HTML récupérer depuis le filedialog sur l'éditeur de texte
je viens d'essayer votre suggestion mais il me dit
invalid write to global property component
Je pense que je me suis mal exprimé. Je voudrais charge le fichier texte ou HTML récupérer depuis le filedialog sur l'éditeur (MyEditeur).qml Côté interface qui est fait avec (éditeur).cpp côté fonctionnement
Pour l'instant j'arrive à récupérer le fichier et afficher le type de fichier. Mais quand je lancer la fonction load du MyEditeur ça ne charge pas le fichier -
@Gojir4 Non il m'affiche un erreur type :
TypeError: Property 'load' of object MyEditeur_QMLTYPE_22(0×2bb32b92270) is not a function
pour le container je le remplace appWindow qui est mon id sur la fenêtre principale
Function onLauncerNewNotef(filePath) { var component = Qt.createComponent("qrc:/MyEditeur.qml") appWindow est id sur la fenêtre ApplicationWindow var editor =component.createObject(appWindow) editor.load(filePath) Starck.pus(editor) }
Enfaite la fonction load est définie dans le code c++
enfin je viens d'essayer de définir un nouveau function loads qui prendre un string, sur mon fichier MyEditeur.qml et sur cette function j'appelle document.load(string) et ça marche
Ça fait 8 jours complet que je cherche une solution
Merci pour votre aide précieux -
-
This post is deleted!