Just to make it clearer:

>From docs:
"You may want to mix QML and C++ for a number of reasons. For example:
...
To write your own QML elements (whether for your applications, or for
distribution to others)"

iirc, we have two approaches for creating new QML elements: as QML
documents and as QObject-based C++ classes:
I'm wondering about the criteria to choose the most suitable approach:

- With C++ classes you have virtually unlimited functionality but you
cannot build upon already
existing QML elements (eg. dynamic elements creation) without linking
to private headers.
- With QML documents you have others QML elements at your disposal but
functionality is
restrict to what you can do with javascript.

Is that right ?

TIA,
--
Sandro

On Mon, Nov 21, 2011 at 10:49 AM,  <[email protected]> wrote:
> No - classes only exported with Q_AUTOTEST_EXPORT are not meant to be used 
> this way. They are only exported at all in developer build so that autotests 
> can use them. Deployed versions of Qt will not have these symbols exported.
>
> Flickable is not public C++ API, only public QML API. To create a flickable 
> extended QML component, you should use
> Flickable{
>    //QML code goes here
> }
>
> --
> Alan Alpert
> ________________________________________
> From: [email protected] 
> [[email protected]] on behalf of ext 
> Sandro Andrade [[email protected]]
> Sent: Monday, November 21, 2011 10:27 PM
> To: [email protected]
> Cc: [email protected]
> Subject: Re: [Development] Extending QML flickable element
>
> Nice, but even if I build qt with -developer-build is it a correct and
> reasonable way to create my flickable extended qml component ?
> --
> Sandro
>
> On Mon, Nov 21, 2011 at 10:04 AM,  <[email protected]> wrote:
>> class Q_AUTOTEST_EXPORT QDeclarativeFlickable
>>
>> The Q_AUTOTEST_EXPORT means the symbols are only available when Qt is 
>> configured as a developer build.
>> They are exported for the unit tests to use, but not exported in a normal 
>> build.
>>
>>> -----Original Message-----
>>> From: [email protected]
>>> [mailto:[email protected]]
>>> On Behalf Of Sandro Andrade
>>> Sent: Monday, November 21, 2011 11:57
>>> To: [email protected]
>>> Subject: [Development] Extending QML flickable element
>>>
>>> Hi there,
>>>
>>> I'm trying to extend QML flickable element to provide a new QML view.
>>> Building occurs fine but the generated library
>>> have some missing symbols. Any chance for building and linking against
>>> qt private headers outside qt source folders ?
>>>
>>> TIA,
>>> Sandro
>>>
>>>       linux-gate.so.1 =>  (0xb78a3000)
>>>       libgraph.so.5 => /usr/lib/libgraph.so.5 (0xb7878000)
>>>       libgvc.so.6 => /usr/lib/libgvc.so.6 (0xb7802000)
>>>       libQtDeclarative.so.4 =>
>>> /usr/local/Trolltech/Qt-4.7.4/lib/libQtDeclarative.so.4 (0xb748c000)
>>>       libQtScript.so.4 =>
>>> /usr/local/Trolltech/Qt-4.7.4/lib/libQtScript.so.4 (0xb7206000)
>>>       libQtSvg.so.4 => /usr/local/Trolltech/Qt-4.7.4/lib/libQtSvg.so.4
>>> (0xb71af000)
>>>       libQtSql.so.4 => /usr/local/Trolltech/Qt-4.7.4/lib/libQtSql.so.4
>>> (0xb7170000)
>>>       libQtXmlPatterns.so.4 =>
>>> /usr/local/Trolltech/Qt-4.7.4/lib/libQtXmlPatterns.so.4 (0xb6d70000)
>>>       libQtGui.so.4 => /usr/local/Trolltech/Qt-4.7.4/lib/libQtGui.so.4
>>> (0xb62a4000)
>>>       libQtNetwork.so.4 =>
>>> /usr/local/Trolltech/Qt-4.7.4/lib/libQtNetwork.so.4 (0xb6167000)
>>>       libQtCore.so.4 => /usr/local/Trolltech/Qt-4.7.4/lib/libQtCore.so.4
>>> (0xb5ec1000)
>>>       libpthread.so.0 => /lib/libpthread.so.0 (0xb5ea6000)
>>>       libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb5db7000)
>>>       libm.so.6 => /lib/libm.so.6 (0xb5d8d000)
>>>       libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0xb5d70000)
>>>       libc.so.6 => /lib/libc.so.6 (0xb5bf4000)
>>>       libcdt.so.5 => /usr/lib/libcdt.so.5 (0xb5bed000)
>>>       libltdl.so.7 => /usr/lib/libltdl.so.7 (0xb5be2000)
>>>       libdl.so.2 => /lib/libdl.so.2 (0xb5bdd000)
>>>       libxdot.so.4 => /usr/lib/libxdot.so.4 (0xb5bd9000)
>>>       libpathplan.so.4 => /usr/lib/libpathplan.so.4 (0xb5bd1000)
>>>       libexpat.so.1 => /usr/lib/libexpat.so.1 (0xb5ba6000)
>>>       libz.so.1 => /usr/lib/libz.so.1 (0xb5b8e000)
>>>       librt.so.1 => /lib/librt.so.1 (0xb5b85000)
>>>       libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0 (0xb5b7f000)
>>>       libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0xb5a87000)
>>>       libpng14.so.14 => /usr/lib/libpng14.so.14 (0xb5a5b000)
>>>       libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xb59bf000)
>>>       libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0xb5970000)
>>>       libSM.so.6 => /usr/lib/libSM.so.6 (0xb5969000)
>>>       libICE.so.6 => /usr/lib/libICE.so.6 (0xb5952000)
>>>       libXrender.so.1 => /usr/lib/libXrender.so.1 (0xb594a000)
>>>       libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0xb591b000)
>>>       libXext.so.6 => /usr/lib/libXext.so.6 (0xb5909000)
>>>       libX11.so.6 => /usr/lib/libX11.so.6 (0xb57d3000)
>>>       /lib/ld-linux.so.2 (0xb78a4000)
>>>       libpcre.so.0 => /lib/libpcre.so.0 (0xb5773000)
>>>       libbz2.so.1.0 => /lib/libbz2.so.1.0 (0xb5762000)
>>>       libffi.so.5 => /usr/lib/libffi.so.5 (0xb575b000)
>>>       libuuid.so.1 => /lib/libuuid.so.1 (0xb5755000)
>>>       libxcb.so.1 => /usr/lib/libxcb.so.1 (0xb5737000)
>>>       libXau.so.6 => /usr/lib/libXau.so.6 (0xb5734000)
>>>       libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0xb572e000)
>>> undefined symbol:
>>> _ZN21QDeclarativeFlickable10timerEventEP11QTimerEvent
>>>       (./libqmlgraphvizplugin.so)
>>> undefined symbol:
>>> _ZN21QDeclarativeFlickable10sceneEventEP6QEvent
>>>       (./libqmlgraphvizplugin.so)
>>> undefined symbol:
>>> _ZN21QDeclarativeFlickable15geometryChangedERK6QRectFS2_
>>>       (./libqmlgraphvizplugin.so)
>>> undefined symbol:
>>> _ZN21QDeclarativeFlickable11setContentXEd     (./libqmlgraphvizplugin.so)
>>> undefined symbol:
>>> _ZN21QDeclarativeFlickable11setContentYEd     (./libqmlgraphvizplugin.so)
>>> undefined symbol:
>>> _ZN21QDeclarativeFlickable16sceneEventFilterEP13QGraphicsItemP6QEvent
>>>       (./libqmlgraphvizplugin.so)
>>> undefined symbol:
>>> _ZN21QDeclarativeFlickable15mousePressEventEP24QGraphicsSceneMouseEvent
>>>       (./libqmlgraphvizplugin.so)
>>> undefined symbol:
>>> _ZN21QDeclarativeFlickable14mouseMoveEventEP24QGraphicsSceneMouseEvent
>>>       (./libqmlgraphvizplugin.so)
>>> undefined symbol:
>>> _ZN21QDeclarativeFlickable17mouseReleaseEventEP24QGraphicsSceneMouseEven
>>> t(./libqmlgraphvizplugin.so)
>>> undefined symbol:
>>> _ZN21QDeclarativeFlickable10wheelEventEP24QGraphicsSceneWheelEvent
>>>       (./libqmlgraphvizplugin.so)
>>> undefined symbol:
>>> _ZN21QDeclarativeFlickable6tickedEv   (./libqmlgraphvizplugin.so)
>>> undefined symbol:
>>> _ZNK21QDeclarativeFlickable10minXExtentEv     (./libqmlgraphvizplugin.so)
>>> undefined symbol:
>>> _ZNK21QDeclarativeFlickable10minYExtentEv     (./libqmlgraphvizplugin.so)
>>> undefined symbol:
>>> _ZNK21QDeclarativeFlickable10maxXExtentEv     (./libqmlgraphvizplugin.so)
>>> undefined symbol:
>>> _ZNK21QDeclarativeFlickable10maxYExtentEv     (./libqmlgraphvizplugin.so)
>>> undefined symbol:
>>> _ZN21QDeclarativeFlickable13viewportMovedEv
>>>       (./libqmlgraphvizplugin.so)
>>> undefined symbol:
>>> _ZThn8_N21QDeclarativeFlickable16sceneEventFilterEP13QGraphicsItemP6QEve
>>> nt    (./libqmlgraphvizplugin.so)
>>> undefined symbol:
>>> _ZThn8_N21QDeclarativeFlickable10sceneEventEP6QEvent
>>>       (./libqmlgraphvizplugin.so)
>>> undefined symbol:
>>> _ZThn8_N21QDeclarativeFlickable15mousePressEventEP24QGraphicsSceneMouseE
>>> vent  (./libqmlgraphvizplugin.so)
>>> undefined symbol:
>>> _ZThn8_N21QDeclarativeFlickable14mouseMoveEventEP24QGraphicsSceneMouseEv
>>> ent   (./libqmlgraphvizplugin.so)
>>> undefined symbol:
>>> _ZThn8_N21QDeclarativeFlickable17mouseReleaseEventEP24QGraphicsSceneMous
>>> eEvent        (./libqmlgraphvizplugin.so)
>>> undefined symbol:
>>> _ZThn8_N21QDeclarativeFlickable10wheelEventEP24QGraphicsSceneWheelEvent
>>>       (./libqmlgraphvizplugin.so)
>>> undefined symbol: _ZTI21QDeclarativeFlickable
>>>       (./libqmlgraphvizplugin.so)
>>> undefined symbol:
>>> _ZN21QDeclarativeFlickable16staticMetaObjectE
>>>       (./libqmlgraphvizplugin.so)
>>> undefined symbol:
>>> _ZN21QDeclarativeFlickableC2EP16QDeclarativeItem
>>>       (./libqmlgraphvizplugin.so)
>>> undefined symbol:
>>> _ZN21QDeclarativeFlickable11qt_metacastEPKc
>>>       (./libqmlgraphvizplugin.so)
>>> undefined symbol: _ZN21QDeclarativeFlickableD2Ev
>>>       (./libqmlgraphvizplugin.so)
>>> undefined symbol:
>>> _ZN21QDeclarativeFlickable11qt_metacallEN11QMetaObject4CallEiPPv
>>>       (./libqmlgraphvizplugin.so)
>>>
>>> --
>>> Sandro
>>> _______________________________________________
>>> Development mailing list
>>> [email protected]
>>> http://lists.qt-project.org/mailman/listinfo/development
>>
>>
>> ________________________________
>> Subject to local law, communications with Accenture and its affiliates 
>> including telephone calls and emails (including content), may be monitored 
>> by our systems for the purposes of security and the assessment of internal 
>> compliance with Accenture policy.
>> ______________________________________________________________________________________
>>
>> www.accenture.com
>>
>>
> _______________________________________________
> Development mailing list
> [email protected]
> http://lists.qt-project.org/mailman/listinfo/development
>
_______________________________________________
Development mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/development

Reply via email to