Sophie

Sophie

distrib > Mandriva > current > i586 > media > main-updates > by-pkgid > 8e6051afcdb111a0317a58fb64c2abf5 > files > 4510

qt4-doc-4.6.3-0.2mdv2010.2.i586.rpm

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html
    PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<!-- qmetaobject.cpp -->
<head>
  <title>Qt 4.6: QMetaMethod Class Reference</title>
  <link href="classic.css" rel="stylesheet" type="text/css" />
</head>
<body>
<a name="//apple_ref/cpp/cl//QMetaMethod"></a>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td align="left" valign="top" width="32"><a href="http://qt.nokia.com/"><img src="images/qt-logo.png" align="left" border="0" /></a></td>
<td width="1">&nbsp;&nbsp;</td><td class="postheader" valign="center"><a href="index.html"><font color="#004faf">Home</font></a>&nbsp;&middot; <a href="classes.html"><font color="#004faf">All&nbsp;Classes</font></a>&nbsp;&middot; <a href="functions.html"><font color="#004faf">All&nbsp;Functions</font></a>&nbsp;&middot; <a href="overviews.html"><font color="#004faf">Overviews</font></a></td></tr></table><h1 class="title">QMetaMethod Class Reference<br /><span class="small-subtitle">[<a href="qtcore.html">QtCore</a> module]</span>
</h1>
<p>The QMetaMethod class provides meta-data about a member function. <a href="#details">More...</a></p>
<pre> #include &lt;QMetaMethod&gt;</pre><ul>
<li><a href="qmetamethod-members.html">List of all members, including inherited members</a></li>
</ul>
<hr />
<a name="public-types"></a>
<h2>Public Types</h2>
<table class="alignedsummary" border="0" cellpadding="0" cellspacing="0" width="100%">
<tr><td class="memItemLeft" align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><b><a href="qmetamethod.html#Access-enum">Access</a></b> { Private, Protected, Public }</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><b><a href="qmetamethod.html#MethodType-enum">MethodType</a></b> { Method, Signal, Slot, Constructor }</td></tr>
</table>
<hr />
<a name="public-functions"></a>
<h2>Public Functions</h2>
<table class="alignedsummary" border="0" cellpadding="0" cellspacing="0" width="100%">
<tr><td class="memItemLeft" align="right" valign="top">Access </td><td class="memItemRight" valign="bottom"><b><a href="qmetamethod.html#access">access</a></b> () const</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><b><a href="qmetamethod.html#invoke">invoke</a></b> ( QObject * <i>object</i>, Qt::ConnectionType <i>connectionType</i>, QGenericReturnArgument <i>returnValue</i>, QGenericArgument <i>val0</i> = QGenericArgument( 0 ), QGenericArgument <i>val1</i> = QGenericArgument(), QGenericArgument <i>val2</i> = QGenericArgument(), QGenericArgument <i>val3</i> = QGenericArgument(), QGenericArgument <i>val4</i> = QGenericArgument(), QGenericArgument <i>val5</i> = QGenericArgument(), QGenericArgument <i>val6</i> = QGenericArgument(), QGenericArgument <i>val7</i> = QGenericArgument(), QGenericArgument <i>val8</i> = QGenericArgument(), QGenericArgument <i>val9</i> = QGenericArgument() ) const</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><b><a href="qmetamethod.html#invoke-2">invoke</a></b> ( QObject * <i>object</i>, QGenericReturnArgument <i>returnValue</i>, QGenericArgument <i>val0</i> = QGenericArgument( 0 ), QGenericArgument <i>val1</i> = QGenericArgument(), QGenericArgument <i>val2</i> = QGenericArgument(), QGenericArgument <i>val3</i> = QGenericArgument(), QGenericArgument <i>val4</i> = QGenericArgument(), QGenericArgument <i>val5</i> = QGenericArgument(), QGenericArgument <i>val6</i> = QGenericArgument(), QGenericArgument <i>val7</i> = QGenericArgument(), QGenericArgument <i>val8</i> = QGenericArgument(), QGenericArgument <i>val9</i> = QGenericArgument() ) const</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><b><a href="qmetamethod.html#invoke-3">invoke</a></b> ( QObject * <i>object</i>, Qt::ConnectionType <i>connectionType</i>, QGenericArgument <i>val0</i> = QGenericArgument( 0 ), QGenericArgument <i>val1</i> = QGenericArgument(), QGenericArgument <i>val2</i> = QGenericArgument(), QGenericArgument <i>val3</i> = QGenericArgument(), QGenericArgument <i>val4</i> = QGenericArgument(), QGenericArgument <i>val5</i> = QGenericArgument(), QGenericArgument <i>val6</i> = QGenericArgument(), QGenericArgument <i>val7</i> = QGenericArgument(), QGenericArgument <i>val8</i> = QGenericArgument(), QGenericArgument <i>val9</i> = QGenericArgument() ) const</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><b><a href="qmetamethod.html#invoke-4">invoke</a></b> ( QObject * <i>object</i>, QGenericArgument <i>val0</i> = QGenericArgument( 0 ), QGenericArgument <i>val1</i> = QGenericArgument(), QGenericArgument <i>val2</i> = QGenericArgument(), QGenericArgument <i>val3</i> = QGenericArgument(), QGenericArgument <i>val4</i> = QGenericArgument(), QGenericArgument <i>val5</i> = QGenericArgument(), QGenericArgument <i>val6</i> = QGenericArgument(), QGenericArgument <i>val7</i> = QGenericArgument(), QGenericArgument <i>val8</i> = QGenericArgument(), QGenericArgument <i>val9</i> = QGenericArgument() ) const</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><b><a href="qmetamethod.html#methodIndex">methodIndex</a></b> () const</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">MethodType </td><td class="memItemRight" valign="bottom"><b><a href="qmetamethod.html#methodType">methodType</a></b> () const</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">QList&lt;QByteArray&gt; </td><td class="memItemRight" valign="bottom"><b><a href="qmetamethod.html#parameterNames">parameterNames</a></b> () const</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">QList&lt;QByteArray&gt; </td><td class="memItemRight" valign="bottom"><b><a href="qmetamethod.html#parameterTypes">parameterTypes</a></b> () const</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><b><a href="qmetamethod.html#signature">signature</a></b> () const</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><b><a href="qmetamethod.html#tag">tag</a></b> () const</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><b><a href="qmetamethod.html#typeName">typeName</a></b> () const</td></tr>
</table>
<a name="details"></a>
<hr />
<h2>Detailed Description</h2>
<p>The QMetaMethod class provides meta-data about a member function.</p>
<p>A QMetaMethod has a <a href="qmetamethod.html#methodType">methodType</a>(), a <a href="qmetamethod.html#signature">signature</a>(), a list of <a href="qmetamethod.html#parameterTypes">parameterTypes</a>() and <a href="qmetamethod.html#parameterNames">parameterNames</a>(), a return <a href="qmetamethod.html#typeName">typeName</a>(), a <a href="qmetamethod.html#tag">tag</a>(), and an <a href="qmetamethod.html#access">access</a>() specifier. You can use <a href="qmetamethod.html#invoke">invoke</a>() to invoke the method on an arbitrary <a href="qobject.html">QObject</a>.</p>
<p>See also <a href="qmetaobject.html">QMetaObject</a>, <a href="qmetaenum.html">QMetaEnum</a>, <a href="qmetaproperty.html">QMetaProperty</a>, and <a href="properties.html">Qt's Property System</a>.</p>
<hr />
<h2>Member Type Documentation</h2>
<a name="//apple_ref/cpp/tag/QMetaMethod/Access"></a>
<a name="//apple_ref/cpp/econst/QMetaMethod/Private"></a>
<a name="//apple_ref/cpp/econst/QMetaMethod/Protected"></a>
<a name="//apple_ref/cpp/econst/QMetaMethod/Public"></a>
<h3 class="fn"><a name="Access-enum"></a>enum QMetaMethod::Access</h3>
<p>This enum describes the access level of a method, following the conventions used in C++.</p>
<p><table  class="valuelist" border="1" cellpadding="2" cellspacing="1" width="40%">
<tr><th width="60%">Constant</th><th width="40%">Value</th></tr>
<tr><td valign="top"><tt>QMetaMethod::Private</tt></td><td align="center" valign="top"><tt>0</tt></td></tr>
<tr><td valign="top"><tt>QMetaMethod::Protected</tt></td><td align="center" valign="top"><tt>1</tt></td></tr>
<tr><td valign="top"><tt>QMetaMethod::Public</tt></td><td align="center" valign="top"><tt>2</tt></td></tr>
</table></p>
<a name="//apple_ref/cpp/tag/QMetaMethod/MethodType"></a>
<a name="//apple_ref/cpp/econst/QMetaMethod/Method"></a>
<a name="//apple_ref/cpp/econst/QMetaMethod/Signal"></a>
<a name="//apple_ref/cpp/econst/QMetaMethod/Slot"></a>
<a name="//apple_ref/cpp/econst/QMetaMethod/Constructor"></a>
<h3 class="fn"><a name="MethodType-enum"></a>enum QMetaMethod::MethodType</h3>
<p><table class="valuelist" border="1" cellpadding="2" cellspacing="1" width="100%">
<tr><th width="25%">Constant</th><th width="15%">Value</th><th width="60%">Description</th></tr>
<tr><td valign="top"><tt>QMetaMethod::Method</tt></td><td align="center" valign="top"><tt>0</tt></td><td valign="top">The function is a plain member function.</td></tr>
<tr><td valign="top"><tt>QMetaMethod::Signal</tt></td><td align="center" valign="top"><tt>1</tt></td><td valign="top">The function is a signal.</td></tr>
<tr><td valign="top"><tt>QMetaMethod::Slot</tt></td><td align="center" valign="top"><tt>2</tt></td><td valign="top">The function is a slot.</td></tr>
<tr><td valign="top"><tt>QMetaMethod::Constructor</tt></td><td align="center" valign="top"><tt>3</tt></td><td valign="top">The function is a constructor.</td></tr>
</table></p>
<hr />
<h2>Member Function Documentation</h2>
<a name="//apple_ref/cpp/instm/QMetaMethod/access"></a>
<h3 class="fn"><a name="access"></a><a href="qmetamethod.html#Access-enum">Access</a> QMetaMethod::access () const</h3>
<p>Returns the access specification of this method (private, protected, or public).</p>
<p>Signals are always protected, meaning that you can only emit them from the class or from a subclass.</p>
<p>See also <a href="qmetamethod.html#methodType">methodType</a>().</p>
<a name="//apple_ref/cpp/instm/QMetaMethod/invoke"></a>
<h3 class="fn"><a name="invoke"></a>bool QMetaMethod::invoke ( <a href="qobject.html">QObject</a> * <i>object</i>, <a href="qt.html#ConnectionType-enum">Qt::ConnectionType</a> <i>connectionType</i>, <a href="qgenericreturnargument.html">QGenericReturnArgument</a> <i>returnValue</i>, <a href="qgenericargument.html">QGenericArgument</a> <i>val0</i> = QGenericArgument( 0 ), <a href="qgenericargument.html">QGenericArgument</a> <i>val1</i> = QGenericArgument(), <a href="qgenericargument.html">QGenericArgument</a> <i>val2</i> = QGenericArgument(), <a href="qgenericargument.html">QGenericArgument</a> <i>val3</i> = QGenericArgument(), <a href="qgenericargument.html">QGenericArgument</a> <i>val4</i> = QGenericArgument(), <a href="qgenericargument.html">QGenericArgument</a> <i>val5</i> = QGenericArgument(), <a href="qgenericargument.html">QGenericArgument</a> <i>val6</i> = QGenericArgument(), <a href="qgenericargument.html">QGenericArgument</a> <i>val7</i> = QGenericArgument(), <a href="qgenericargument.html">QGenericArgument</a> <i>val8</i> = QGenericArgument(), <a href="qgenericargument.html">QGenericArgument</a> <i>val9</i> = QGenericArgument() ) const</h3>
<p>Invokes this method on the object <i>object</i>. Returns true if the member could be invoked. Returns false if there is no such member or the parameters did not match.</p>
<p>The invocation can be either synchronous or asynchronous, depending on the <i>connectionType</i>:</p>
<ul>
<li>If <i>connectionType</i> is <a href="qt.html#ConnectionType-enum">Qt::DirectConnection</a>, the member will be invoked immediately.</li>
<li>If <i>connectionType</i> is <a href="qt.html#ConnectionType-enum">Qt::QueuedConnection</a>, a <a href="qevent.html">QEvent</a> will be posted and the member is invoked as soon as the application enters the main event loop.</li>
<li>If <i>connectionType</i> is <a href="qt.html#ConnectionType-enum">Qt::AutoConnection</a>, the member is invoked synchronously if <i>object</i> lives in the same thread as the caller; otherwise it will invoke the member asynchronously.</li>
</ul>
<p>The return value of this method call is placed in <i>returnValue</i>. If the invocation is asynchronous, the return value cannot be evaluated. You can pass up to ten arguments (<i>val0</i>, <i>val1</i>, <i>val2</i>, <i>val3</i>, <i>val4</i>, <i>val5</i>, <i>val6</i>, <i>val7</i>, <i>val8</i>, and <i>val9</i>) to this method call.</p>
<p><a href="qgenericargument.html">QGenericArgument</a> and <a href="qgenericreturnargument.html">QGenericReturnArgument</a> are internal helper classes. Because signals and slots can be dynamically invoked, you must enclose the arguments using the <a href="qmetaobject.html#Q_ARG">Q_ARG</a>() and <a href="qmetaobject.html#Q_RETURN_ARG">Q_RETURN_ARG</a>() macros. <a href="qmetaobject.html#Q_ARG">Q_ARG</a>() takes a type name and a const reference of that type; <a href="qmetaobject.html#Q_RETURN_ARG">Q_RETURN_ARG</a>() takes a type name and a non-const reference.</p>
<p>To asynchronously invoke the <a href="qabstractbutton.html#animateClick">animateClick()</a> slot on a <a href="qpushbutton.html">QPushButton</a>:</p>
<pre> int methodIndex = pushButton-&gt;metaObject()-&gt;indexOfMethod(&quot;animateClick()&quot;);
 QMetaMethod method = metaObject-&gt;method(methodIndex);
 method.invoke(pushButton, Qt::QueuedConnection);</pre>
<p>With asynchronous method invocations, the parameters must be of types that are known to Qt's meta-object system, because Qt needs to copy the arguments to store them in an event behind the scenes. If you try to use a queued connection and get the error message</p>
<pre> QMetaMethod::invoke: Unable to handle unregistered datatype 'MyType'</pre>
<p>call <a href="qmetatype.html#qRegisterMetaType">qRegisterMetaType</a>() to register the data type before you call QMetaMethod::invoke().</p>
<p>To synchronously invoke the <tt>compute(QString, int, double)</tt> slot on some arbitrary object <tt>obj</tt> retrieve its return value:</p>
<pre> QString retVal;
 QByteArray normalizedSignature = QMetaObject::normalizedSignature(&quot;compute(QString, int, double)&quot;);
 int methodIndex = obj-&gt;metaObject()-&gt;indexOfMethod(normalizedSignature);
 QMetaMethod method = metaObject-&gt;method(methodIndex);
 method.invoke(obj,
               Qt::DirectConnection,
               Q_RETURN_ARG(QString, retVal),
               Q_ARG(QString, &quot;sqrt&quot;),
               Q_ARG(int, 42),
               Q_ARG(double, 9.7));</pre>
<p><a href="qmetaobject.html#normalizedSignature">QMetaObject::normalizedSignature</a>() is used here to ensure that the format of the signature is what invoke() expects. E.g&#x2e; extra whitespace is removed.</p>
<p>If the &quot;compute&quot; slot does not take exactly one <a href="qstring.html">QString</a>, one int and one double in the specified order, the call will fail.</p>
<p>See also <a href="qmetaobject.html#Q_ARG">Q_ARG</a>(), <a href="qmetaobject.html#Q_RETURN_ARG">Q_RETURN_ARG</a>(), <a href="qmetatype.html#qRegisterMetaType">qRegisterMetaType</a>(), and <a href="qmetaobject.html#invokeMethod">QMetaObject::invokeMethod</a>().</p>
<h3 class="fn"><a name="invoke-2"></a>bool QMetaMethod::invoke ( <a href="qobject.html">QObject</a> * <i>object</i>, <a href="qgenericreturnargument.html">QGenericReturnArgument</a> <i>returnValue</i>, <a href="qgenericargument.html">QGenericArgument</a> <i>val0</i> = QGenericArgument( 0 ), <a href="qgenericargument.html">QGenericArgument</a> <i>val1</i> = QGenericArgument(), <a href="qgenericargument.html">QGenericArgument</a> <i>val2</i> = QGenericArgument(), <a href="qgenericargument.html">QGenericArgument</a> <i>val3</i> = QGenericArgument(), <a href="qgenericargument.html">QGenericArgument</a> <i>val4</i> = QGenericArgument(), <a href="qgenericargument.html">QGenericArgument</a> <i>val5</i> = QGenericArgument(), <a href="qgenericargument.html">QGenericArgument</a> <i>val6</i> = QGenericArgument(), <a href="qgenericargument.html">QGenericArgument</a> <i>val7</i> = QGenericArgument(), <a href="qgenericargument.html">QGenericArgument</a> <i>val8</i> = QGenericArgument(), <a href="qgenericargument.html">QGenericArgument</a> <i>val9</i> = QGenericArgument() ) const</h3>
<p>This function overloads <a href="qmetamethod.html#invoke">invoke</a>().</p>
<p>This overload always invokes this method using the connection type <a href="qt.html#ConnectionType-enum">Qt::AutoConnection</a>.</p>
<h3 class="fn"><a name="invoke-3"></a>bool QMetaMethod::invoke ( <a href="qobject.html">QObject</a> * <i>object</i>, <a href="qt.html#ConnectionType-enum">Qt::ConnectionType</a> <i>connectionType</i>, <a href="qgenericargument.html">QGenericArgument</a> <i>val0</i> = QGenericArgument( 0 ), <a href="qgenericargument.html">QGenericArgument</a> <i>val1</i> = QGenericArgument(), <a href="qgenericargument.html">QGenericArgument</a> <i>val2</i> = QGenericArgument(), <a href="qgenericargument.html">QGenericArgument</a> <i>val3</i> = QGenericArgument(), <a href="qgenericargument.html">QGenericArgument</a> <i>val4</i> = QGenericArgument(), <a href="qgenericargument.html">QGenericArgument</a> <i>val5</i> = QGenericArgument(), <a href="qgenericargument.html">QGenericArgument</a> <i>val6</i> = QGenericArgument(), <a href="qgenericargument.html">QGenericArgument</a> <i>val7</i> = QGenericArgument(), <a href="qgenericargument.html">QGenericArgument</a> <i>val8</i> = QGenericArgument(), <a href="qgenericargument.html">QGenericArgument</a> <i>val9</i> = QGenericArgument() ) const</h3>
<p>This function overloads <a href="qmetamethod.html#invoke">invoke</a>().</p>
<p>This overload can be used if the return value of the member is of no interest.</p>
<h3 class="fn"><a name="invoke-4"></a>bool QMetaMethod::invoke ( <a href="qobject.html">QObject</a> * <i>object</i>, <a href="qgenericargument.html">QGenericArgument</a> <i>val0</i> = QGenericArgument( 0 ), <a href="qgenericargument.html">QGenericArgument</a> <i>val1</i> = QGenericArgument(), <a href="qgenericargument.html">QGenericArgument</a> <i>val2</i> = QGenericArgument(), <a href="qgenericargument.html">QGenericArgument</a> <i>val3</i> = QGenericArgument(), <a href="qgenericargument.html">QGenericArgument</a> <i>val4</i> = QGenericArgument(), <a href="qgenericargument.html">QGenericArgument</a> <i>val5</i> = QGenericArgument(), <a href="qgenericargument.html">QGenericArgument</a> <i>val6</i> = QGenericArgument(), <a href="qgenericargument.html">QGenericArgument</a> <i>val7</i> = QGenericArgument(), <a href="qgenericargument.html">QGenericArgument</a> <i>val8</i> = QGenericArgument(), <a href="qgenericargument.html">QGenericArgument</a> <i>val9</i> = QGenericArgument() ) const</h3>
<p>This function overloads <a href="qmetamethod.html#invoke">invoke</a>().</p>
<p>This overload invokes this method using the connection type <a href="qt.html#ConnectionType-enum">Qt::AutoConnection</a> and ignores return values.</p>
<a name="//apple_ref/cpp/instm/QMetaMethod/methodIndex"></a>
<h3 class="fn"><a name="methodIndex"></a>int QMetaMethod::methodIndex () const</h3>
<p>Returns this method's index.</p>
<p>This function was introduced in Qt 4.6.</p>
<a name="//apple_ref/cpp/instm/QMetaMethod/methodType"></a>
<h3 class="fn"><a name="methodType"></a><a href="qmetamethod.html#MethodType-enum">MethodType</a> QMetaMethod::methodType () const</h3>
<p>Returns the type of this method (signal, slot, or method).</p>
<p>See also <a href="qmetamethod.html#access">access</a>().</p>
<a name="//apple_ref/cpp/instm/QMetaMethod/parameterNames"></a>
<h3 class="fn"><a name="parameterNames"></a><a href="qlist.html">QList</a>&lt;<a href="qbytearray.html">QByteArray</a>&gt; QMetaMethod::parameterNames () const</h3>
<p>Returns a list of parameter names.</p>
<p>See also <a href="qmetamethod.html#parameterTypes">parameterTypes</a>() and <a href="qmetamethod.html#signature">signature</a>().</p>
<a name="//apple_ref/cpp/instm/QMetaMethod/parameterTypes"></a>
<h3 class="fn"><a name="parameterTypes"></a><a href="qlist.html">QList</a>&lt;<a href="qbytearray.html">QByteArray</a>&gt; QMetaMethod::parameterTypes () const</h3>
<p>Returns a list of parameter types.</p>
<p>See also <a href="qmetamethod.html#parameterNames">parameterNames</a>() and <a href="qmetamethod.html#signature">signature</a>().</p>
<a name="//apple_ref/cpp/instm/QMetaMethod/signature"></a>
<h3 class="fn"><a name="signature"></a>const char * QMetaMethod::signature () const</h3>
<p>Returns the signature of this method (e.g&#x2e;, <tt>setValue(double)</tt>).</p>
<p>See also <a href="qmetamethod.html#parameterTypes">parameterTypes</a>() and <a href="qmetamethod.html#parameterNames">parameterNames</a>().</p>
<a name="//apple_ref/cpp/instm/QMetaMethod/tag"></a>
<h3 class="fn"><a name="tag"></a>const char * QMetaMethod::tag () const</h3>
<p>Returns the tag associated with this method.</p>
<p>Tags are special macros recognized by <tt>moc</tt> that make it possible to add extra information about a method. For the moment, <tt>moc</tt> doesn't support any special tags.</p>
<a name="//apple_ref/cpp/instm/QMetaMethod/typeName"></a>
<h3 class="fn"><a name="typeName"></a>const char * QMetaMethod::typeName () const</h3>
<p>Returns the return type of this method, or an empty string if the return type is <i>void</i>.</p>
<p /><address><hr /><div align="center">
<table width="100%" cellspacing="0" border="0"><tr class="address">
<td width="40%" align="left">Copyright &copy; 2010 Nokia Corporation and/or its subsidiary(-ies)</td>
<td width="20%" align="center"><a href="trademarks.html">Trademarks</a></td>
<td width="40%" align="right"><div align="right">Qt 4.6.3</div></td>
</tr></table></div></address></body>
</html>