<class name="QObject" doc="/**
&lt;p&gt;The &lt;a href=&quot;QObject.html#QObject(com.trolltech.qt.core.QObject)&quot;&gt;&lt;tt&gt;QObject&lt;/tt&gt;&lt;/a&gt; class is the base class of all Qt objects.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;QObject.html#QObject(com.trolltech.qt.core.QObject)&quot;&gt;&lt;tt&gt;QObject&lt;/tt&gt;&lt;/a&gt; is the heart of the &lt;a href=&quot;%2E%2E/object.html&quot;&gt;Qt object model&lt;/tt&gt;&lt;/a&gt;. The central feature in this model is a very powerful mechanism for seamless object communication called &lt;a href=&quot;%2E%2E/qtjambi-signalsandslots.html&quot;&gt;signals and slots&lt;/tt&gt;&lt;/a&gt;. You can connect a signal to a slot with connect() and destroy the connection with disconnect(). To avoid never ending notification loops you can temporarily block signals with &lt;a href=&quot;QObject.html#blockSignals(boolean)&quot;&gt;&lt;tt&gt;blockSignals&lt;/tt&gt;&lt;/a&gt;. The protected functions connectNotify() and disconnectNotify() make it possible to track connections.&lt;/p&gt;
&lt;p&gt;QObjects organize themselves in object trees. When you create a &lt;a href=&quot;QObject.html#QObject(com.trolltech.qt.core.QObject)&quot;&gt;&lt;tt&gt;QObject&lt;/tt&gt;&lt;/a&gt; with another object as parent, the object will automatically add itself to the parent's &lt;a href=&quot;QObject.html#children()&quot;&gt;&lt;tt&gt;children&lt;/tt&gt;&lt;/a&gt; list. The parent takes ownership of the object i.e&amp;#x2e; it will automatically delete its children in its destructor. You can look for an object by name and optionally type using findChild() or findChildren().&lt;/p&gt;
&lt;p&gt;Every object has an &lt;a href=&quot;QObject.html#objectName()&quot;&gt;&lt;tt&gt;objectName&lt;/tt&gt;&lt;/a&gt; and its class name can be found via the corresponding metaObject() (see QMetaObject::className()). You can determine whether the object's class inherits another class in the &lt;a href=&quot;QObject.html#QObject(com.trolltech.qt.core.QObject)&quot;&gt;&lt;tt&gt;QObject&lt;/tt&gt;&lt;/a&gt; inheritance hierarchy by using the inherits() function.&lt;/p&gt;
&lt;p&gt;When an object is deleted, it emits a destroyed() signal. You can catch this signal to avoid dangling references to QObjects.&lt;/p&gt;
&lt;p&gt;QObjects can receive events through &lt;a href=&quot;QObject.html#event(com.trolltech.qt.core.QEvent)&quot;&gt;&lt;tt&gt;event&lt;/tt&gt;&lt;/a&gt; and filter the events of other objects. See &lt;a href=&quot;QObject.html#installEventFilter(com.trolltech.qt.core.QObject)&quot;&gt;&lt;tt&gt;installEventFilter&lt;/tt&gt;&lt;/a&gt; and &lt;a href=&quot;QObject.html#eventFilter(com.trolltech.qt.core.QObject, com.trolltech.qt.core.QEvent)&quot;&gt;&lt;tt&gt;eventFilter&lt;/tt&gt;&lt;/a&gt; for details. A convenience handler, &lt;a href=&quot;QObject.html#childEvent(com.trolltech.qt.core.QChildEvent)&quot;&gt;&lt;tt&gt;childEvent&lt;/tt&gt;&lt;/a&gt;, can be reimplemented to catch child events.&lt;/p&gt;
&lt;p&gt;Events are delivered in the thread in which the object was created; see &lt;a href=&quot;%2E%2E/threads.html&quot;&gt;Thread Support in Qt&lt;/tt&gt;&lt;/a&gt; and &lt;a href=&quot;QObject.html#thread()&quot;&gt;&lt;tt&gt;thread&lt;/tt&gt;&lt;/a&gt; for details. Note that event processing is not done at all for QObjects with no thread affinity (&lt;a href=&quot;QObject.html#thread()&quot;&gt;&lt;tt&gt;thread&lt;/tt&gt;&lt;/a&gt; returns zero). Use the &lt;a href=&quot;QObject.html#moveToThread(java.lang.Thread)&quot;&gt;&lt;tt&gt;moveToThread&lt;/tt&gt;&lt;/a&gt; function to change the thread affinity for an object and its children (the object cannot be moved if it has a parent).&lt;/p&gt;
&lt;p&gt;Last but not least, &lt;a href=&quot;QObject.html#QObject(com.trolltech.qt.core.QObject)&quot;&gt;&lt;tt&gt;QObject&lt;/tt&gt;&lt;/a&gt; provides the basic timer support in Qt; see &lt;a href=&quot;QTimer.html&quot;&gt;&lt;tt&gt;QTimer&lt;/tt&gt;&lt;/a&gt; for high-level support for timers.&lt;/p&gt;
&lt;p&gt;Notice that the Q_OBJECT macro is mandatory for any object that implements signals, slots or properties. You also need to run the &lt;a href=&quot;%2E%2E/moc.html#moc&quot;&gt;Meta Object Compiler&lt;/tt&gt;&lt;/a&gt; on the source file. We strongly recommend the use of this macro in all subclasses of &lt;a href=&quot;QObject.html#QObject(com.trolltech.qt.core.QObject)&quot;&gt;&lt;tt&gt;QObject&lt;/tt&gt;&lt;/a&gt; regardless of whether or not they actually use signals, slots and properties, since failure to do so may lead certain functions to exhibit strange behavior.&lt;/p&gt;
&lt;p&gt;All Qt widgets inherit &lt;a href=&quot;QObject.html#QObject(com.trolltech.qt.core.QObject)&quot;&gt;&lt;tt&gt;QObject&lt;/tt&gt;&lt;/a&gt;. The convenience function &lt;a href=&quot;QObject.html#isWidgetType()&quot;&gt;&lt;tt&gt;isWidgetType&lt;/tt&gt;&lt;/a&gt; returns whether an object is actually a widget. It is much faster than qobject_cast&amp;lt;&lt;a href=&quot;%2E%2E/gui/QWidget.html&quot;&gt;&lt;tt&gt;QWidget&lt;/tt&gt;&lt;/a&gt; *&amp;gt;(&lt;i&gt;obj&lt;/i&gt;) or &lt;i&gt;obj&lt;/i&gt;-&amp;gt;inherits&lt;/tt&gt;(&amp;quot;&lt;a href=&quot;%2E%2E/gui/QWidget.html&quot;&gt;&lt;tt&gt;QWidget&lt;/tt&gt;&lt;/a&gt;&amp;quot;).&lt;/p&gt;
&lt;p&gt;Some &lt;a href=&quot;QObject.html#QObject(com.trolltech.qt.core.QObject)&quot;&gt;&lt;tt&gt;QObject&lt;/tt&gt;&lt;/a&gt; functions, e.g&amp;#x2e; &lt;a href=&quot;QObject.html#children()&quot;&gt;&lt;tt&gt;children&lt;/tt&gt;&lt;/a&gt;, return a &lt;a href=&quot;%2E%2E/porting4.html#qobjectlist&quot;&gt;&lt;tt&gt;QObjectList&lt;/tt&gt;&lt;/a&gt;. &lt;a href=&quot;%2E%2E/porting4.html#qobjectlist&quot;&gt;&lt;tt&gt;QObjectList&lt;/tt&gt;&lt;/a&gt; is a typedef for QList&amp;lt;&lt;a href=&quot;QObject.html#QObject(com.trolltech.qt.core.QObject)&quot;&gt;&lt;tt&gt;QObject&lt;/tt&gt;&lt;/a&gt; *&amp;gt;.&lt;/p&gt;
&lt;a name=&quot;auto-connection&quot;&gt;&lt;/a&gt;
&lt;h3&gt;Auto-Connection&lt;/h3&gt;
&lt;p&gt;Qt's meta-object system provides a mechanism to automatically connect signals and slots between &lt;a href=&quot;QObject.html#QObject(com.trolltech.qt.core.QObject)&quot;&gt;&lt;tt&gt;QObject&lt;/tt&gt;&lt;/a&gt; subclasses and their children. As long as objects are defined with suitable object names, and slots follow a simple naming convention, this connection can be performed at run-time by the QMetaObject::connectSlotsByName() function.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;%2E%2E/uic.html#uic&quot;&gt;uic&lt;/tt&gt;&lt;/a&gt; generates code that invokes this function to enable auto-connection to be performed between widgets on forms created with &lt;i&gt;Qt Designer&lt;/i&gt;. More information about using auto-connection with &lt;i&gt;Qt Designer&lt;/i&gt; is given in the &lt;a href=&quot;%2E%2E/designer-using-a-component.html&quot;&gt;Using a Component in Your Application&lt;/tt&gt;&lt;/a&gt; section of the &lt;i&gt;Qt Designer&lt;/i&gt; manual.&lt;/p&gt;
&lt;a name=&quot;dynamic-properties&quot;&gt;&lt;/a&gt;
&lt;h3&gt;Dynamic Properties&lt;/h3&gt;
&lt;p&gt;From Qt 4.2, dynamic properties can be added to and removed from &lt;a href=&quot;QObject.html#QObject(com.trolltech.qt.core.QObject)&quot;&gt;&lt;tt&gt;QObject&lt;/tt&gt;&lt;/a&gt; instances at run-time. Dynamic properties do not need to be declared at compile-time, yet they provide the same advantages as static properties and are manipulated using the same API - using property() to read them and setProperty() to write them.&lt;/p&gt;
&lt;p&gt;From Qt 4.3, dynamic properties are supported by &lt;a href=&quot;%2E%2E/designer-editing-mode.html#the-property-editor&quot;&gt;Qt Designer&lt;/tt&gt;&lt;/a&gt;, and both standard Qt widgets and user-created forms can be given dynamic properties.&lt;/p&gt;

@see &lt;tt&gt;QMetaObject&lt;/tt&gt;
@see &lt;tt&gt;QPointer&lt;/tt&gt;
@see &lt;tt&gt;QObjectCleanupHandler&lt;/tt&gt;
@see &lt;a href=&quot;%2E%2E/objecttrees.html&quot;&gt;Object Trees and Object Ownership&lt;/tt&gt;&lt;/a&gt; */">
    <method name="public QObject(com.trolltech.qt.core.QObject parent)" doc="/**
&lt;p&gt;Constructs an object with parent object &lt;tt&gt;parent&lt;/tt&gt;.&lt;/p&gt;
&lt;p&gt;The parent of an object may be viewed as the object's owner. For instance, a &lt;a href=&quot;%2E%2E/gui/QDialog.html&quot;&gt;dialog box&lt;/tt&gt;&lt;/a&gt; is the parent of the &lt;b&gt;OK&lt;/b&gt; and &lt;b&gt;Cancel&lt;/b&gt; buttons it contains.&lt;/p&gt;
&lt;p&gt;The destructor of a parent object destroys all child objects.&lt;/p&gt;
&lt;p&gt;Setting &lt;tt&gt;parent&lt;/tt&gt; to 0 constructs an object with no parent. If the object is a widget, it will become a top-level window.&lt;/p&gt;

@see &lt;a href=&quot;QObject.html#parent()&quot;&gt;&lt;tt&gt;parent&lt;/tt&gt;&lt;/a&gt;
@see &lt;tt&gt;findChild&lt;/tt&gt;
@see &lt;tt&gt;findChildren&lt;/tt&gt; */"/>
    <method name="public QObject()" doc="/**
&lt;p&gt;Equivalent to &lt;a href=&quot;QObject.html#QObject(com.trolltech.qt.core.QObject)&quot;&gt;&lt;tt&gt;QObject&lt;/tt&gt;&lt;/a&gt;(0). */"/>
    <method name="public final boolean blockSignals(boolean b)" doc="/**
&lt;p&gt;If &lt;tt&gt;b&lt;/tt&gt; is true, signals emitted by this object are blocked (i.e&amp;#x2e;, emitted signals disappear into hyperspace). If &lt;tt&gt;b&lt;/tt&gt; is false, no such blocking will occur.&lt;/p&gt;
&lt;p&gt;The return value is the previous value of &lt;a href=&quot;QObject.html#signalsBlocked()&quot;&gt;&lt;tt&gt;signalsBlocked&lt;/tt&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Note that the destroyed() signal will be emitted even if the signals for this object have been blocked.&lt;/p&gt;

@see &lt;a href=&quot;QObject.html#signalsBlocked()&quot;&gt;&lt;tt&gt;signalsBlocked&lt;/tt&gt;&lt;/a&gt; */"/>
    <method name="public final java.util.List&lt;com.trolltech.qt.core.QObject&gt; children()" doc="/**
&lt;p&gt;Returns a list of child objects. The &lt;a href=&quot;%2E%2E/porting4.html#qobjectlist&quot;&gt;&lt;tt&gt;QObjectList&lt;/tt&gt;&lt;/a&gt; class is defined in the &lt;tt&gt;&amp;lt;QObject&amp;gt;&lt;/tt&gt; header file as the following:&lt;/p&gt;
&lt;pre&gt;    typedef QList&amp;lt;QObject*&amp;gt; QObjectList;&lt;/pre&gt;
&lt;p&gt;The first child added is the first&lt;/tt&gt; object in the list and the last child added is the last&lt;/tt&gt; object in the list, i.e&amp;#x2e; new children are appended at the end.&lt;/p&gt;
&lt;p&gt;Note that the list order changes when &lt;a href=&quot;%2E%2E/gui/QWidget.html&quot;&gt;&lt;tt&gt;QWidget&lt;/tt&gt;&lt;/a&gt; children are raised&lt;/tt&gt; or lowered&lt;/tt&gt;. A widget that is raised becomes the last object in the list, and a widget that is lowered becomes the first object in the list.&lt;/p&gt;

@see &lt;tt&gt;findChild&lt;/tt&gt;
@see &lt;tt&gt;findChildren&lt;/tt&gt;
@see &lt;a href=&quot;QObject.html#parent()&quot;&gt;&lt;tt&gt;parent&lt;/tt&gt;&lt;/a&gt;
@see &lt;a href=&quot;QObject.html#setParent(com.trolltech.qt.core.QObject)&quot;&gt;&lt;tt&gt;setParent&lt;/tt&gt;&lt;/a&gt; */"/>
    <method name="public final void disposeLater()" doc="/**
&lt;p&gt;Schedules this object for deletion.&lt;/p&gt;
&lt;p&gt;The object will be deleted when control returns to the event loop.&lt;/p&gt;
&lt;p&gt;Note that entering and leaving a new event loop (e.g&amp;#x2e;, by opening a modal dialog) will &lt;i&gt;not&lt;/i&gt; perform the deferred deletion; for the object to be deleted, the control must return to the event loop from which deleteLater() was called.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Note:&lt;/b&gt; It is safe to call this function more than once; when the first deferred deletion event is delivered, any pending events for the object are removed from the event queue.&lt;/p&gt;

@see &lt;tt&gt;destroyed&lt;/tt&gt;
@see &lt;tt&gt;QPointer&lt;/tt&gt; */"/>
    <method name="public final void dumpObjectInfo()" doc="/**
&lt;p&gt;Dumps information about signal connections, etc. for this object to the debug output.&lt;/p&gt;
&lt;p&gt;This function is useful for debugging, but does nothing if the library has been compiled in release mode (i.e&amp;#x2e; without debugging information).&lt;/p&gt;

@see &lt;a href=&quot;QObject.html#dumpObjectTree()&quot;&gt;&lt;tt&gt;dumpObjectTree&lt;/tt&gt;&lt;/a&gt; */"/>
    <method name="public final void dumpObjectTree()" doc="/**
&lt;p&gt;Dumps a tree of children to the debug output.&lt;/p&gt;
&lt;p&gt;This function is useful for debugging, but does nothing if the library has been compiled in release mode (i.e&amp;#x2e; without debugging information).&lt;/p&gt;

@see &lt;a href=&quot;QObject.html#dumpObjectInfo()&quot;&gt;&lt;tt&gt;dumpObjectInfo&lt;/tt&gt;&lt;/a&gt; */"/>
    <method name="public final java.util.List&lt;com.trolltech.qt.core.QByteArray&gt; dynamicPropertyNames()" doc="/**
&lt;p&gt;Returns the names of all properties that were dynamically added to the object using setProperty().&lt;/p&gt;
 */"/>
    <method name="public final void installEventFilter(com.trolltech.qt.core.QObject arg__1)" doc="/**
&lt;p&gt;Installs an event filter &lt;tt&gt;arg__1&lt;/tt&gt; on this object. For example:&lt;/p&gt;
&lt;pre&gt;    monitoredObj-&amp;gt;installEventFilter(filterObj);&lt;/pre&gt;
&lt;p&gt;An event filter is an object that receives all events that are sent to this object. The filter can either stop the event or forward it to this object. The event filter &lt;tt&gt;arg__1&lt;/tt&gt; receives events via its &lt;a href=&quot;QObject.html#eventFilter(com.trolltech.qt.core.QObject, com.trolltech.qt.core.QEvent)&quot;&gt;&lt;tt&gt;eventFilter&lt;/tt&gt;&lt;/a&gt; function. The &lt;a href=&quot;QObject.html#eventFilter(com.trolltech.qt.core.QObject, com.trolltech.qt.core.QEvent)&quot;&gt;&lt;tt&gt;eventFilter&lt;/tt&gt;&lt;/a&gt; function must return true if the event should be filtered, (i.e&amp;#x2e; stopped); otherwise it must return false.&lt;/p&gt;
&lt;p&gt;If multiple event filters are installed on a single object, the filter that was installed last is activated first.&lt;/p&gt;
&lt;p&gt;Here's a &lt;tt&gt;KeyPressEater&lt;/tt&gt; class that eats the key presses of its monitored objects:&lt;/p&gt;
&lt;pre&gt;        class KeyPressEater : public QObject
        {
            Q_OBJECT
            ...

        protected:
            bool eventFilter(QObject *obj, QEvent *event);
        };

        bool KeyPressEater::eventFilter(QObject *obj, QEvent *event)
        {
            if (event-&amp;gt;type() == QEvent::KeyPress) {
                QKeyEvent *keyEvent = static_cast&amp;lt;QKeyEvent *&amp;gt;(event);
                qDebug(&amp;quot;Ate key press %d&amp;quot;, keyEvent-&amp;gt;key());
                return true;
            } else {
                &lt;span class=&quot;comment&quot;&gt;//&lt;/span&gt; standard event processing
                return QObject::eventFilter(obj, event);
            }
        }&lt;/pre&gt;
&lt;p&gt;And here's how to install it on two widgets:&lt;/p&gt;
&lt;pre&gt;        KeyPressEater *keyPressEater = new KeyPressEater(this);
        QPushButton *pushButton = new QPushButton(this);
        QListView *listView = new QListView(this);

        pushButton-&amp;gt;installEventFilter(keyPressEater);
        listView-&amp;gt;installEventFilter(keyPressEater);&lt;/pre&gt;
&lt;p&gt;The &lt;a href=&quot;%2E%2E/gui/QShortcut.html&quot;&gt;&lt;tt&gt;QShortcut&lt;/tt&gt;&lt;/a&gt; class, for example, uses this technique to intercept shortcut key presses.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Warning:&lt;/b&gt; If you delete the receiver object in your &lt;a href=&quot;QObject.html#eventFilter(com.trolltech.qt.core.QObject, com.trolltech.qt.core.QEvent)&quot;&gt;&lt;tt&gt;eventFilter&lt;/tt&gt;&lt;/a&gt; function, be sure to return true. If you return false, Qt sends the event to the deleted object and the program will crash.&lt;/p&gt;

@see &lt;a href=&quot;QObject.html#removeEventFilter(com.trolltech.qt.core.QObject)&quot;&gt;&lt;tt&gt;removeEventFilter&lt;/tt&gt;&lt;/a&gt;
@see &lt;a href=&quot;QObject.html#eventFilter(com.trolltech.qt.core.QObject, com.trolltech.qt.core.QEvent)&quot;&gt;&lt;tt&gt;eventFilter&lt;/tt&gt;&lt;/a&gt;
@see &lt;a href=&quot;QObject.html#event(com.trolltech.qt.core.QEvent)&quot;&gt;&lt;tt&gt;event&lt;/tt&gt;&lt;/a&gt; */"/>
    <method name="public final boolean isWidgetType()" doc="/**
&lt;p&gt;Returns true if the object is a widget; otherwise returns false.&lt;/p&gt;
&lt;p&gt;Calling this function is equivalent to calling inherits(&amp;quot;&lt;a href=&quot;%2E%2E/gui/QWidget.html&quot;&gt;&lt;tt&gt;QWidget&lt;/tt&gt;&lt;/a&gt;&amp;quot;), except that it is much faster.&lt;/p&gt;
 */"/>
    <method name="public final void killTimer(int id)" doc="/**
&lt;p&gt;Kills the timer with timer identifier, &lt;tt&gt;id&lt;/tt&gt;.&lt;/p&gt;
&lt;p&gt;The timer identifier is returned by &lt;a href=&quot;QObject.html#startTimer(int)&quot;&gt;&lt;tt&gt;startTimer&lt;/tt&gt;&lt;/a&gt; when a timer event is started.&lt;/p&gt;

@see &lt;a href=&quot;QObject.html#timerEvent(com.trolltech.qt.core.QTimerEvent)&quot;&gt;&lt;tt&gt;timerEvent&lt;/tt&gt;&lt;/a&gt;
@see &lt;a href=&quot;QObject.html#startTimer(int)&quot;&gt;&lt;tt&gt;startTimer&lt;/tt&gt;&lt;/a&gt; */"/>
    <method name="public final void moveToThread(java.lang.Thread thread)" doc="/**
&lt;p&gt;Changes the thread affinity for this object and its children. The object cannot be moved if it has a parent. Event processing will continue in the &lt;tt&gt;thread&lt;/tt&gt;.&lt;/p&gt;
&lt;p&gt;To move an object to the main thread, use QApplication::instance() to retrieve a pointer to the current application, and then use QApplication::thread() to retrieve the thread in which the application lives. For example:&lt;/p&gt;
&lt;pre&gt;    myObject-&amp;gt;moveToThread(QApplication::instance()-&amp;gt;thread());&lt;/pre&gt;
&lt;p&gt;If &lt;tt&gt;thread&lt;/tt&gt; is zero, all event processing for this object and its children stops.&lt;/p&gt;
&lt;p&gt;Note that all active timers for the object will be reset. The timers are first stopped in the current thread and restarted (with the same interval) in the &lt;tt&gt;thread&lt;/tt&gt;. As a result, constantly moving an object between threads can postpone timer events indefinitely.&lt;/p&gt;
&lt;p&gt;A QEvent::ThreadChange event is sent to this object just before the thread affinity is changed. You can handle this event to perform any special processing. Note that any new events that are posted to this object will be handled in the &lt;tt&gt;thread&lt;/tt&gt;.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Warning:&lt;/b&gt; This function is &lt;i&gt;not&lt;/i&gt; thread-safe; the current thread must be same as the current thread affinity. In other words, this function can only &amp;quot;push&amp;quot; an object from the current thread to another thread, it cannot &amp;quot;pull&amp;quot; an object from any arbitrary thread to the current thread.&lt;/p&gt;

@see &lt;a href=&quot;QObject.html#thread()&quot;&gt;&lt;tt&gt;thread&lt;/tt&gt;&lt;/a&gt; */"/>
    <method name="public final java.lang.String objectName()" doc="/**
&lt;p&gt;Returns the name of this object.&lt;/p&gt;
&lt;p&gt;You can find an object by name (and type) using findChild(). You can find a set of objects with findChildren().&lt;/p&gt;
&lt;pre&gt;    qDebug(&amp;quot;MyClass::setPrecision(): (%s) invalid precision %f&amp;quot;,
           qPrintable(objectName()), newPrecision);&lt;/pre&gt;

@see &lt;a href=&quot;QObject.html#setObjectName(java.lang.String)&quot;&gt;&lt;tt&gt;setObjectName&lt;/tt&gt;&lt;/a&gt;
@see &lt;tt&gt;metaObject&lt;/tt&gt;
@see &lt;tt&gt;QMetaObject::className&lt;/tt&gt; */"/>
    <method name="public final com.trolltech.qt.core.QObject parent()" doc="/**
&lt;p&gt;Returns a pointer to the parent object.&lt;/p&gt;

@see &lt;a href=&quot;QObject.html#setParent(com.trolltech.qt.core.QObject)&quot;&gt;&lt;tt&gt;setParent&lt;/tt&gt;&lt;/a&gt;
@see &lt;a href=&quot;QObject.html#children()&quot;&gt;&lt;tt&gt;children&lt;/tt&gt;&lt;/a&gt; */"/>
    <method name="public final void removeEventFilter(com.trolltech.qt.core.QObject arg__1)" doc="/**
&lt;p&gt;Removes an event filter object &lt;tt&gt;arg__1&lt;/tt&gt; from this object. The request is ignored if such an event filter has not been installed.&lt;/p&gt;
&lt;p&gt;All event filters for this object are automatically removed when this object is destroyed.&lt;/p&gt;
&lt;p&gt;It is always safe to remove an event filter, even during event filter activation (i.e&amp;#x2e; from the &lt;a href=&quot;QObject.html#eventFilter(com.trolltech.qt.core.QObject, com.trolltech.qt.core.QEvent)&quot;&gt;&lt;tt&gt;eventFilter&lt;/tt&gt;&lt;/a&gt; function).&lt;/p&gt;

@see &lt;a href=&quot;QObject.html#installEventFilter(com.trolltech.qt.core.QObject)&quot;&gt;&lt;tt&gt;installEventFilter&lt;/tt&gt;&lt;/a&gt;
@see &lt;a href=&quot;QObject.html#eventFilter(com.trolltech.qt.core.QObject, com.trolltech.qt.core.QEvent)&quot;&gt;&lt;tt&gt;eventFilter&lt;/tt&gt;&lt;/a&gt;
@see &lt;a href=&quot;QObject.html#event(com.trolltech.qt.core.QEvent)&quot;&gt;&lt;tt&gt;event&lt;/tt&gt;&lt;/a&gt; */"/>
    <method name="public final void setObjectName(java.lang.String name)" doc="/**
&lt;p&gt;Sets the name of this object to &lt;tt&gt;name&lt;/tt&gt;.&lt;/p&gt;
&lt;p&gt;You can find an object by name (and type) using findChild(). You can find a set of objects with findChildren().&lt;/p&gt;
&lt;pre&gt;    qDebug(&amp;quot;MyClass::setPrecision(): (%s) invalid precision %f&amp;quot;,
           qPrintable(objectName()), newPrecision);&lt;/pre&gt;

@see &lt;a href=&quot;QObject.html#objectName()&quot;&gt;&lt;tt&gt;objectName&lt;/tt&gt;&lt;/a&gt;
@see &lt;tt&gt;metaObject&lt;/tt&gt;
@see &lt;tt&gt;QMetaObject::className&lt;/tt&gt; */"/>
    <method name="public final void setParent(com.trolltech.qt.core.QObject arg__1)" doc="/**
&lt;p&gt;Makes the object a child of &lt;tt&gt;arg__1&lt;/tt&gt;.&lt;/p&gt;

@see &lt;a href=&quot;QObject.html#parent()&quot;&gt;&lt;tt&gt;parent&lt;/tt&gt;&lt;/a&gt;
@see &lt;tt&gt;QWidget::setParent&lt;/tt&gt; */"/>
    <method name="public final boolean signalsBlocked()" doc="/**
&lt;p&gt;Returns true if signals are blocked; otherwise returns false.&lt;/p&gt;
&lt;p&gt;Signals are not blocked by default.&lt;/p&gt;

@see &lt;a href=&quot;QObject.html#blockSignals(boolean)&quot;&gt;&lt;tt&gt;blockSignals&lt;/tt&gt;&lt;/a&gt; */"/>
    <method name="public final int startTimer(int interval)" doc="/**
&lt;p&gt;Starts a timer and returns a timer identifier, or returns zero if it could not start a timer.&lt;/p&gt;
&lt;p&gt;A timer event will occur every &lt;tt&gt;interval&lt;/tt&gt; milliseconds until &lt;a href=&quot;QObject.html#killTimer(int)&quot;&gt;&lt;tt&gt;killTimer&lt;/tt&gt;&lt;/a&gt; is called. If &lt;tt&gt;interval&lt;/tt&gt; is 0, then the timer event occurs once every time there are no more window system events to process.&lt;/p&gt;
&lt;p&gt;The virtual &lt;a href=&quot;QObject.html#timerEvent(com.trolltech.qt.core.QTimerEvent)&quot;&gt;&lt;tt&gt;timerEvent&lt;/tt&gt;&lt;/a&gt; function is called with the &lt;a href=&quot;QTimerEvent.html&quot;&gt;&lt;tt&gt;QTimerEvent&lt;/tt&gt;&lt;/a&gt; event parameter class when a timer event occurs. Reimplement this function to get timer events.&lt;/p&gt;
&lt;p&gt;If multiple timers are running, the QTimerEvent::timerId() can be used to find out which timer was activated.&lt;/p&gt;
&lt;p&gt;Example:&lt;/p&gt;
&lt;pre&gt;    class MyObject : public QObject
    {
        Q_OBJECT

    public:
        MyObject(QObject *parent = 0);

    protected:
        void timerEvent(QTimerEvent *event);
    };

    MyObject::MyObject(QObject *parent)
        : QObject(parent)
    {
        startTimer(50);     &lt;span class=&quot;comment&quot;&gt;//&lt;/span&gt; 50-millisecond timer
        startTimer(1000);   &lt;span class=&quot;comment&quot;&gt;//&lt;/span&gt; 1-second timer
        startTimer(60000);  &lt;span class=&quot;comment&quot;&gt;//&lt;/span&gt; 1-minute timer
    }

    void MyObject::timerEvent(QTimerEvent *event)
    {
        qDebug() &amp;lt;&amp;lt; &amp;quot;Timer ID:&amp;quot; &amp;lt;&amp;lt; event-&amp;gt;timerId();
    }&lt;/pre&gt;
&lt;p&gt;Note that &lt;a href=&quot;QTimer.html&quot;&gt;&lt;tt&gt;QTimer&lt;/tt&gt;&lt;/a&gt;'s accuracy depends on the underlying operating system and hardware. Most platforms support an accuracy of 20 milliseconds; some provide more. If Qt is unable to deliver the requested number of timer events, it will silently discard some.&lt;/p&gt;
&lt;p&gt;The &lt;a href=&quot;QTimer.html&quot;&gt;&lt;tt&gt;QTimer&lt;/tt&gt;&lt;/a&gt; class provides a high-level programming interface with single-shot timers and timer signals instead of events. There is also a &lt;a href=&quot;QBasicTimer.html&quot;&gt;&lt;tt&gt;QBasicTimer&lt;/tt&gt;&lt;/a&gt; class that is more lightweight than &lt;a href=&quot;QTimer.html&quot;&gt;&lt;tt&gt;QTimer&lt;/tt&gt;&lt;/a&gt; and less clumsy than using timer IDs directly.&lt;/p&gt;

@see &lt;a href=&quot;QObject.html#timerEvent(com.trolltech.qt.core.QTimerEvent)&quot;&gt;&lt;tt&gt;timerEvent&lt;/tt&gt;&lt;/a&gt;
@see &lt;a href=&quot;QObject.html#killTimer(int)&quot;&gt;&lt;tt&gt;killTimer&lt;/tt&gt;&lt;/a&gt;
@see &lt;tt&gt;QTimer::singleShot&lt;/tt&gt; */"/>
    <method name="public final java.lang.Thread thread()" doc="/**
&lt;p&gt;Returns the thread in which the object lives.&lt;/p&gt;

@see &lt;a href=&quot;QObject.html#moveToThread(java.lang.Thread)&quot;&gt;&lt;tt&gt;moveToThread&lt;/tt&gt;&lt;/a&gt; */"/>
    <method name="protected void childEvent(com.trolltech.qt.core.QChildEvent arg__1)" doc="/**
&lt;p&gt;This event handler can be reimplemented in a subclass to receive child events. The event is passed in the &lt;tt&gt;arg__1&lt;/tt&gt; parameter.&lt;/p&gt;
&lt;p&gt;QEvent::ChildAdded and QEvent::ChildRemoved events are sent to objects when children are added or removed. In both cases you can only rely on the child being a &lt;a href=&quot;QObject.html#QObject(com.trolltech.qt.core.QObject)&quot;&gt;&lt;tt&gt;QObject&lt;/tt&gt;&lt;/a&gt;, or if &lt;a href=&quot;QObject.html#isWidgetType()&quot;&gt;&lt;tt&gt;isWidgetType&lt;/tt&gt;&lt;/a&gt; returns true, a &lt;a href=&quot;%2E%2E/gui/QWidget.html&quot;&gt;&lt;tt&gt;QWidget&lt;/tt&gt;&lt;/a&gt;. (This is because, in the ChildAdded case, the child is not yet fully constructed, and in the ChildRemoved case it might have been destructed already).&lt;/p&gt;
&lt;p&gt;QEvent::ChildPolished events are sent to widgets when children are polished, or when polished children are added. If you receive a child polished event, the child's construction is usually completed.&lt;/p&gt;
&lt;p&gt;For every child widget, you receive one ChildAdded event, zero or more ChildPolished events, and one ChildRemoved event.&lt;/p&gt;
&lt;p&gt;The ChildPolished event is omitted if a child is removed immediately after it is added. If a child is polished several times during construction and destruction, you may receive several child polished events for the same child, each time with a different virtual table.&lt;/p&gt;

@see &lt;a href=&quot;QObject.html#event(com.trolltech.qt.core.QEvent)&quot;&gt;&lt;tt&gt;event&lt;/tt&gt;&lt;/a&gt; */"/>
    <method name="protected void customEvent(com.trolltech.qt.core.QEvent arg__1)" doc="/**
&lt;p&gt;This event handler can be reimplemented in a subclass to receive custom events. Custom events are user-defined events with a type value at least as large as the QEvent::User item of the QEvent::Type enum, and is typically a &lt;a href=&quot;QEvent.html&quot;&gt;&lt;tt&gt;QEvent&lt;/tt&gt;&lt;/a&gt; subclass. The event is passed in the &lt;tt&gt;arg__1&lt;/tt&gt; parameter.&lt;/p&gt;

@see &lt;a href=&quot;QObject.html#event(com.trolltech.qt.core.QEvent)&quot;&gt;&lt;tt&gt;event&lt;/tt&gt;&lt;/a&gt;
@see &lt;a href=&quot;QEvent.html&quot;&gt;&lt;tt&gt;QEvent&lt;/tt&gt;&lt;/a&gt; */"/>
    <method name="public boolean event(com.trolltech.qt.core.QEvent arg__1)" doc="/**
&lt;p&gt;This virtual function receives events to an object and should return true if the event &lt;tt&gt;arg__1&lt;/tt&gt; was recognized and processed.&lt;/p&gt;
&lt;p&gt;The &lt;a href=&quot;QObject.html#event(com.trolltech.qt.core.QEvent)&quot;&gt;&lt;tt&gt;event&lt;/tt&gt;&lt;/a&gt; function can be reimplemented to customize the behavior of an object.&lt;/p&gt;

@see &lt;a href=&quot;QObject.html#installEventFilter(com.trolltech.qt.core.QObject)&quot;&gt;&lt;tt&gt;installEventFilter&lt;/tt&gt;&lt;/a&gt;
@see &lt;a href=&quot;QObject.html#timerEvent(com.trolltech.qt.core.QTimerEvent)&quot;&gt;&lt;tt&gt;timerEvent&lt;/tt&gt;&lt;/a&gt;
@see &lt;tt&gt;QApplication::sendEvent&lt;/tt&gt;
@see &lt;tt&gt;QApplication::postEvent&lt;/tt&gt;
@see &lt;tt&gt;QWidget::event&lt;/tt&gt; */"/>
    <method name="public boolean eventFilter(com.trolltech.qt.core.QObject arg__1, com.trolltech.qt.core.QEvent arg__2)" doc="/**
&lt;p&gt;Filters events if this object has been installed as an event filter for the &lt;tt&gt;arg__1&lt;/tt&gt; object.&lt;/p&gt;
&lt;p&gt;In your reimplementation of this function, if you want to filter the &lt;tt&gt;arg__2&lt;/tt&gt; out, i.e&amp;#x2e; stop it being handled further, return true; otherwise return false.&lt;/p&gt;
&lt;p&gt;Example:&lt;/p&gt;
&lt;pre&gt;    class MainWindow : public QMainWindow
    {
    public:
        MainWindow();

    protected:
        bool eventFilter(QObject *obj, QEvent *ev);

    private:
        QTextEdit *textEdit;
    };

    MainWindow::MainWindow()
    {
        textEdit = new QTextEdit;
        setCentralWidget(textEdit);

        textEdit-&amp;gt;installEventFilter(this);
    }

    bool MainWindow::eventFilter(QObject *obj, QEvent *event)
    {
        if (obj == textEdit) {
            if (event-&amp;gt;type() == QEvent::KeyPress) {
                QKeyEvent *keyEvent = static_cast&amp;lt;QKeyEvent*&amp;gt;(event);
                qDebug() &amp;lt;&amp;lt; &amp;quot;Ate key press&amp;quot; &amp;lt;&amp;lt; keyEvent-&amp;gt;key();
                return true;
            } else {
                return false;
            }
        } else {
            &lt;span class=&quot;comment&quot;&gt;//&lt;/span&gt; pass the event on to the parent class
            return QMainWindow::eventFilter(obj, event);
        }
    }&lt;/pre&gt;
&lt;p&gt;Notice in the example above that unhandled events are passed to the base class's &lt;a href=&quot;QObject.html#eventFilter(com.trolltech.qt.core.QObject, com.trolltech.qt.core.QEvent)&quot;&gt;&lt;tt&gt;eventFilter&lt;/tt&gt;&lt;/a&gt; function, since the base class might have reimplemented &lt;a href=&quot;QObject.html#eventFilter(com.trolltech.qt.core.QObject, com.trolltech.qt.core.QEvent)&quot;&gt;&lt;tt&gt;eventFilter&lt;/tt&gt;&lt;/a&gt; for its own internal purposes.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Warning:&lt;/b&gt; If you delete the receiver object in this function, be sure to return true. Otherwise, Qt will forward the event to the deleted object and the program might crash.&lt;/p&gt;

@see &lt;a href=&quot;QObject.html#installEventFilter(com.trolltech.qt.core.QObject)&quot;&gt;&lt;tt&gt;installEventFilter&lt;/tt&gt;&lt;/a&gt; */"/>
    <method name="protected void timerEvent(com.trolltech.qt.core.QTimerEvent arg__1)" doc="/**
&lt;p&gt;This event handler can be reimplemented in a subclass to receive timer events for the object.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;QTimer.html&quot;&gt;&lt;tt&gt;QTimer&lt;/tt&gt;&lt;/a&gt; provides a higher-level interface to the timer functionality, and also more general information about timers. The timer event is passed in the &lt;tt&gt;arg__1&lt;/tt&gt; parameter.&lt;/p&gt;

@see &lt;a href=&quot;QObject.html#startTimer(int)&quot;&gt;&lt;tt&gt;startTimer&lt;/tt&gt;&lt;/a&gt;
@see &lt;a href=&quot;QObject.html#killTimer(int)&quot;&gt;&lt;tt&gt;killTimer&lt;/tt&gt;&lt;/a&gt;
@see &lt;a href=&quot;QObject.html#event(com.trolltech.qt.core.QEvent)&quot;&gt;&lt;tt&gt;event&lt;/tt&gt;&lt;/a&gt; */"/>
</class>
