Aufruf der C ++ - Methode von QML (Qt Quick-Anwendung)

8

Also, ich habe etwas gesucht und keine der ähnlichen Fragen, die ich gelesen habe, hatte einen Rat, der funktioniert hat.

Ich benutze Qt Creator (und ich bin nicht vertraut mit Qt), also bin ich mir nicht sicher, was für ein Voodoo es im Hintergrund ist. Ich verwende jedoch ein Standard-Qt-Schnellanwendungsprojekt.

Im Wesentlichen möchte ich eine C ++ - Funktion von QML aufrufen, die in regelmäßigen Abständen eine Zeichenfolge zurückgibt, die Text im Layout ersetzt.

Hier ist main.cpp:

%Vor%

Und hier ist ein Ausschnitt des Layouts (da das meiste offensichtlich irrelevant ist):

%Vor%

Die angegebenen Fehler sind:

%Vor%

EDIT: mit QDeclarativeContext enthalten, verschwinden die oben genannten, diese Fehler zu geben:

%Vor%

Ich habe nicht viel C ++ programmiert, daher weiß ich nicht genau, was das bedeutet. Der Ratschlag für im wesentlichen identische Probleme hat mir nur vtable Fehler oder mehr unverständliche Dinge gegeben.

Was mich wirklich verwirrt, ist, dass der QmlApplicationViewer, der sich auf die Header-Datei bezieht, von QDeclarativeView abgeleitet ist, und genau das verwendet die Qt-Dokumentation hier mache ich fast genau was ich will. Danke für irgendwelche Vorschläge, die jemand hat.

    
Logan 11.12.2012, 07:48
quelle

2 Antworten

5

Sie müssen Ihre Klasse für die Verwendung mit QML registrieren. Sie können dies in der Hauptfunktion tun. Sie müssen es auch in den QML-Code importieren. Ihr Code sollte folgendermaßen aussehen:

main.cpp:

%Vor%

QML-Code:

%Vor%     
air-dex 16.12.2012 02:27
quelle
0

Ich habe keine Erfahrung mit qt und ich kann nicht sehen, was im Code den Fehler auslöst. Wenn solche Fehler auftreten, liegt das daran, dass eine Klasse (struct QDeclarativeContext) vorwärts deklariert wurde , aber so verwendet wird, als ob die gesamte Definition bekannt wäre (access member, declare variable von diesem Typ, usw.). Um dies zu beheben, müssen Sie die Kopfzeile mit der Definition dieses Typs einfügen.

    
Karthik T 11.12.2012 07:54
quelle

Tags und Links