[Qt-qml] [SOLVED] Signal of Child-Elements in C++?
Girish Ramakrishnan
girish at forwardbias.in
Sat Sep 10 18:13:39 CEST 2011
No, if you have to do something like below, you are not doing it correctly :-)
Instead expose your C++ object to QML and call the c++ slot from QML.
Girish
On Sat, Sep 10, 2011 at 8:07 AM, Christian Benjamin Ries
<christian_benjamin.ries at fh-bielefeld.de> wrote:
> Solved:
> [CPP]
> for(int i=0; i<COUNT; i++) {
> QString objName = QString("service%1").arg(i);
> QObject *serviceObject = objectHost->findChild<QObject*>(objName);
> connect(serviceObject, SIGNAL(serviceIndicatorClicked(int)),
> this, SLOT(serviceIndicatorClicked(int)));
> }
> [/CPP]
>
> Am 10/09/11 14:28, schrieb Christian Benjamin Ries:
>
> Hello,
>
> can you give me an advice how I could connect signals by childs to my
> C++-implementation?
>
> I have following QML-structure:
> [QML]
> // Service.qml
> Item {
> id: service;
> signal serviceIndicatorClicked(int index);
>
> Rectangle {
> id: serviceIndicator;
> ...
> MouseArea {
> anchors.fill: parent;
> acceptedButtons: Qt.LeftButton;
> onClicked: {
> serviceIndicatorClicked(index);
> }
> }
> }
> }
>
> // Host.qml
> Rectangle {
> id: hostItem;
>
> Service {
> ...
> }
> }
> [/QML]
>
> I try to connect this signal with following lines:
> [CPP]
> connect(objectHost, SIGNAL(serviceIndicatorClicked(int)),
> this, SLOT(serviceIndicatorClicked(int)));
> [/CPP]
>
> Then my result is:
> [OUTPUT]
>
> Object::connect: No such signal Host_QMLTYPE_1::serviceIndicatorClicked(int)
>
> Object::connect: (receiver name: 'MainWindow')
>
> [/OUTPUT]
>
> Of course, this makes sense to me, because the signal of the child is not
> visible and not part of Host, right?
>
> Is there an easy way to use this signal?
>
> Cheers, Christian
>
>
> _______________________________________________
> Qt-qml mailing list
> Qt-qml at qt.nokia.com
> http://lists.qt.nokia.com/mailman/listinfo/qt-qml
>
> --
> Dipl.-Ing. (FH) Christian Benjamin Ries, M.Sc.
> University of Applied Sciences Bielefeld
> Department of Engineering Sciences and Mathematics
> Computational Materials Science & Engineering (CMSE)
>
> Wilhelm-Bertelsmann-Str. 10, D-33602 Bielefeld
> Office: 202 (WBSII)
> Phone: +49 521 106-71222
> Fax: +49 521 106-71241
> Web: www.christianbenjaminries.de
>
> _______________________________________________
> Qt-qml mailing list
> Qt-qml at qt.nokia.com
> http://lists.qt.nokia.com/mailman/listinfo/qt-qml
>
>
More information about the Qt-qml
mailing list