<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html> <html lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <!-- qml-extending.qdoc --> <title>Extending QML - Methods Example | Qt QML 5.9</title> <link rel="stylesheet" type="text/css" href="style/offline-simple.css" /> <script type="text/javascript"> document.getElementsByTagName("link").item(0).setAttribute("href", "style/offline.css"); // loading style sheet breaks anchors that were jumped to before // so force jumping to anchor again setTimeout(function() { var anchor = location.hash; // need to jump to different anchor first (e.g. none) location.hash = "#"; setTimeout(function() { location.hash = anchor; }, 0); }, 0); </script> </head> <body> <div class="header" id="qtdocheader"> <div class="main"> <div class="main-rounded"> <div class="navigationbar"> <table><tr> <td >Qt 5.9</td><td ><a href="qtqml-index.html">Qt QML</a></td><td ><a href="qmlextendingexamples.html">Qt QML Examples</a></td><td >Extending QML - Methods Example</td></tr></table><table class="buildversion"><tr> <td id="buildversion" width="100%" align="right">Qt 5.9.4 Reference Documentation</td> </tr></table> </div> </div> <div class="content"> <div class="line"> <div class="content mainContent"> <div class="sidebar"><div class="sidebar-content" id="sidebar-content"></div></div> <h1 class="title">Extending QML - Methods Example</h1> <span class="subtitle"></span> <!-- $$$referenceexamples/methods-description --> <div class="descr"> <a name="details"></a> <p>This example builds on:</p> <ul> <li><a href="qtqml-referenceexamples-coercion-example.html">Extending QML - Inheritance and Coercion Example</a></li> <li><a href="qtqml-referenceexamples-properties-example.html">Extending QML - Object and List Property Types Example</a></li> <li><a href="qtqml-referenceexamples-adding-example.html">Extending QML - Adding Types Example</a></li> </ul> <p>The Methods Example has an additional method in the <code>BirthdayParty</code> class: <code>invite()</code>. <code>invite()</code> is declared with Q_INVOKABLE so that it can be called from QML.</p> <pre class="cpp"> Q_INVOKABLE <span class="type">void</span> invite(<span class="keyword">const</span> <span class="type">QString</span> <span class="operator">&</span>name); </pre> <p>In <code>example.qml</code>, the <code>invite()</code> method is called in the <a href="qml-qtqml-component.html#completed-signal">Component.onCompleted</a> signal handler:</p> <pre class="qml"> import QtQuick 2.0 import People 1.0 <span class="type">BirthdayParty</span> { <span class="name">host</span>: <span class="name">Person</span> { <span class="name">name</span>: <span class="string">"Bob Jones"</span> <span class="name">shoeSize</span>: <span class="number">12</span> } <span class="name">guests</span>: [ <span class="type">Person</span> { <span class="name">name</span>: <span class="string">"Leo Hodges"</span> }, <span class="type">Person</span> { <span class="name">name</span>: <span class="string">"Jack Smith"</span> }, <span class="type">Person</span> { <span class="name">name</span>: <span class="string">"Anne Brown"</span> } ] <span class="name">Component</span>.onCompleted: <span class="name">invite</span>(<span class="string">"William Green"</span>) } </pre> <p>Files:</p> <ul> <li><a href="qtqml-referenceexamples-methods-birthdayparty-cpp.html">referenceexamples/methods/birthdayparty.cpp</a></li> <li><a href="qtqml-referenceexamples-methods-birthdayparty-h.html">referenceexamples/methods/birthdayparty.h</a></li> <li><a href="qtqml-referenceexamples-methods-example-qml.html">referenceexamples/methods/example.qml</a></li> <li><a href="qtqml-referenceexamples-methods-person-cpp.html">referenceexamples/methods/person.cpp</a></li> <li><a href="qtqml-referenceexamples-methods-person-h.html">referenceexamples/methods/person.h</a></li> <li><a href="qtqml-referenceexamples-methods-main-cpp.html">referenceexamples/methods/main.cpp</a></li> <li><a href="qtqml-referenceexamples-methods-methods-pro.html">referenceexamples/methods/methods.pro</a></li> <li><a href="qtqml-referenceexamples-methods-methods-qrc.html">referenceexamples/methods/methods.qrc</a></li> </ul> </div> <!-- @@@referenceexamples/methods --> </div> </div> </div> </div> </div> <div class="footer"> <p> <acronym title="Copyright">©</acronym> 2017 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners.<br> The documentation provided herein is licensed under the terms of the <a href="http://www.gnu.org/licenses/fdl.html">GNU Free Documentation License version 1.3</a> as published by the Free Software Foundation.<br> Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners. </p> </div> </body> </html>