Integrating QML with C++ - Plugin problems [Solved]



  • Hey there, I've been following the "developer slides":http://qt.nokia.com/developer/learning/online/training/materials/qt-essentials-qt-quick-edition on the site but I am having an issue with regards to standalone testing of plugins.

    Slide 55, Using Custom Types, says that if I have built the objects as ellipseplugin.dll and libellipseplugin.a in /plugins and have my qml and qmldir in /standalone then it should work.

    The qmldir is set to the relative location of ../plugins - in fact everything is as stated in the slide but I've tried running it with:
    @
    C:\Scratchpad\QtQuick Demos\8. qml-cpp-integration>qmlviewer -I ex-extension-plugin\plugins\ ex-extension-plugin\standalone\ellipse9s.qml
    @
    but the Debugging>Show Warnings window gives
    @
    file:///C:/Scratchpad/QtQuick Demos/8. qml-cpp-integration/ex-extension-plugin/standalone/ellipse9s.qml:6:5: Ellipse is not a type
    Ellipse {
    ^
    @

    Is this just broken on Windows or is there something I'm missing. I don't get a .so but a .a as mentioned in the slides so is it possible the default project builds a static library rather than the correct shared object?



  • Try to compile and run the example that comes with your Qt distribution:
    examples/declarative/cppextensions/plugins
    Don't miss to read the short README in the root folder.



  • I don't have examples/declarative/cppextensions, I have:

    C:\QtSDK\Examples\notificationexample
    C:\QtSDK\Examples\4.7<loads of examples>

    but even then the \declarative folder doesn't contain cppextensions:

    !http://i.imgur.com/7G1Sk.png(My samples)!







  • I think we're getting off topic here.

    The code accompanying the slides compiles fine - I just can't use it with QMLViewer so I wondered if the slides are wrong, the code is wrong (in which case, I need someone to contact to correct them ) or my configuration is wrong.

    Has anyone managed to run qmlviewer on the ellipse9s.qml example?



  • Yes, I have just downloaded and compiled the example. No problem at all. It runs like a charm.
    I did not specify any path after qmlviewer. Make qml-cpp-integration/ex-extension-plugin/standalone your current directory and invoke
    qmlviewer ellipse9s.qml



  • OK thanks for that - I guess something is wrong with my install on Windows. Going to reintall the Qt SDK :(



  • I did not test it under Windows though.



  • I was aware it worked fine on Linux - that was the point of my posting, it didn't work under Windows so I wondered what was wrong. (hence the screenshot and the whole C:\ stuff).

    Double sad face.



  • Ok, my mistake.
    Just repeated the same thing under Windows. First issue: To build it the path should not contain blanks. Second issue: It does not work under Windows. I also did not find a dll .



  • Boom sussed it. For me I changed QtCreator to build for mingw of the whole project, then launching a mingw command prompt from Programs>Qt SDK>Desktop>Qt 4.7.3 for Desktop (MingW).

    I could then navigate to the directory and launch qmlviewer to view the app.

    I figured that it must be a compilation/library configuration issue about 20 minutes after blowing away my Qt install and starting a new one and reading dialingo's mention of the .dll file...

    Good times. I think I'm well on the way for my Qt Accreditation ;)


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.