⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qobject.html

📁 QT参考文档
💻 HTML
📖 第 1 页 / 共 4 页
字号:
</h3>
搜索这个对象的子对象和任意的孙子对象,并且返回继承<em>inheritsClass</em>的被叫做<em>objName</em>的子对象。如果<em>inheritsClass</em>为0(默认),任何类都可以匹配。
<p> 如果<em>recursiveSearch</em>为真(默认),<a href="#child">child</a>()执行的是一个对于对象的子孙深度优先的搜索。
<p> 如果没有这样的对象,这个函数返回0。如果超过一个,所找到的第一个被返回,如果你需要它们的全部,使用<a href="#queryList">queryList</a>()。

<h3 class=fn>void <a name="childEvent"></a>QObject::childEvent ( <a href="qchildevent.html">QChildEvent</a>&nbsp;* )<tt> [虚 保护]</tt>
</h3>
这个事件处理器在子类中可以被重新实现来接收子对象事件。
<p> 当子对象被插入或移除,子对象事件被发送给对象。
<p> 注意事件类型(<a href="qevent.html#type">QEvent::type</a>())为<a href="qevent.html#Type-enum">QEvent::ChildInserted</a>的事件被传递(通过<a href="qapplication.html#postEvent">QApplication::postEvent</a>())确认了子对象的构造函数在这个函数被调用之前已经完成。
<p> 如果子对象在被插入之后立即被移除,<tt>ChildInserted</tt>事件也许被抑制,但是<tt>ChildRemoved</tt>事件总是被发送。在这种情况下,一个<tt>ChildRemoved</tt>事件没有一个相对应的<tt>ChildInserted</tt>事件是可能的。
<p> 如果你基于<tt>ChildInserted</tt>事件改变状态,调用<a href="qwidget.html#constPolish">QWidget::constPolish</a>(),或者在基于这种状态的函数中执行
<pre>
        QApplication::<a href="qapplication.html#sendPostedEvents">sendPostedEvents</a>( this, QEvent::ChildInserted );
    </pre>
一个著名的实例就是<a href="qwidget.html#sizeHint">QWidget::sizeHint</a>()。
<p> <p>也可以参考<a href="#event">event</a>()和<a href="qchildevent.html">QChildEvent</a>。
<p>在<a href="qmainwindow.html#childEvent">QMainWindow</a>和<a href="qsplitter.html#childEvent">QSplitter</a>中被重新实现。

<h3 class=fn>const&nbsp;<a href="qobjectlist.html">QObjectList</a>&nbsp;* <a name="children"></a>QObject::children () const
</h3>
<p> 返回子对象的列表,或者如果这个对象没有子对象返回0。
<p> <a href="qobjectlist.html">QObjectList</a>类在<a href="qobjectlist-h.html">qobjectlist.h</a>头文件中被定义。
<p> 第一个子对象被添加为这个列表的<a href="qptrlist.html#first">第一个</a>对象并且最后一个子对象被添加为这个列表的<a href="qptrlist.html#last">最后一个</a>对象,比如,新的子对象被添加到列表的最后。
<p> 注意当<a href="qwidget.html">QWidget</a>子对象被<a href="qwidget.html#raise">升起</a>或<a href="qwidget.html#lower">下降</a>,列表的顺序会改变。一个被升起的窗口部件变为这个列表中的最后一个对象,并且一个被下降的窗口部件变为这个列表中的第一个对象。
<p> <p>也可以参考<a href="#child">child</a>()、<a href="#queryList">queryList</a>()、<a href="#parent">parent</a>()、<a href="#insertChild">insertChild</a>()和<a href="#removeChild">removeChild</a>()。

<h3 class=fn>const char * <a name="className"></a>QObject::className () const
</h3>
<p> 返回这个对象的类名。
<p> 这个函数是由<a href="metaobjects.html">元对象编译器</a>生成的。
<p> <b>警告:</b>如果类定义中缺少<a href="metaobjects.html#Q_OBJECT">Q_OBJECT</a>宏,这个函数就会返回错误的名称。
<p> <p>也可以参考<a href="#name-prop">name</a>、<a href="#inherits">inherits</a>()、<a href="#isA">isA</a>()和<a href="#isWidgetType">isWidgetType</a>()。
<p>实例:<a href="sql.html#x2234">sql/overview/custom1/main.cpp</a>。

<h3 class=fn>bool <a name="connect"></a>QObject::connect ( const&nbsp;<a href="qobject.html">QObject</a>&nbsp;*&nbsp;sender, const&nbsp;char&nbsp;*&nbsp;signal, const&nbsp;<a href="qobject.html">QObject</a>&nbsp;*&nbsp;receiver, const&nbsp;char&nbsp;*&nbsp;member )<tt> [静态]</tt>
</h3>
把从<em>sender</em>对象发送的<em>signal</em>和<em>receiver</em>对象中的<em>member</em>连接起来,并且如果连接成功返回真,否则返回假。
<p> 你必须在说明<em>signal</em>和<em>member</em>的时候使用SIGNAL()和SLOT()两个宏,例如:
<pre>
    <a href="qlabel.html">QLabel</a>     *label  = new <a href="qlabel.html">QLabel</a>;
    <a href="qscrollbar.html">QScrollBar</a> *scroll = new <a href="qscrollbar.html">QScrollBar</a>;
    QObject::<a href="#connect">connect</a>( scroll, SIGNAL(<a href="qscrollbar.html#valueChanged">valueChanged</a>(int)),
                      label,  SLOT(<a href="qlabel.html#setNum">setNum</a>(int)) );
    </pre>
 
<p> 这个实例确保了label总显示当前滚动条的值。
<p> 一个信号也可以被连接到另一个信号上:
<p> <pre>
    class MyWidget : public <a href="qwidget.html">QWidget</a>
    {
        <a href="metaobjects.html#Q_OBJECT">Q_OBJECT</a>
    public:
        MyWidget();

    signals:
        void myUsefulSignal();

    private:
        <a href="qpushbutton.html">QPushButton</a> *aButton;
    };

    MyWidget::MyWidget()
    {
        aButton = new <a href="qpushbutton.html">QPushButton</a>( this );
        <a href="#connect">connect</a>( aButton, SIGNAL(<a href="qbutton.html#clicked">clicked</a>()), SIGNAL(myUsefulSignal()) );
    }
    </pre>
 
<p> 在这个实例中,MyWidget的构造函数传递一个来自私有成员变量的信号,并且使它在MyWidget的一个相关名称下可用。
<p> 一个信号可以被连接到多个槽和信号上。多个信号可以被连接到一个槽上。
<p> 如果一个信号被连接到几个槽上,当信号被发射的时候,槽被激活的顺序是任意的。
<p> 如果信号和槽被成功连接,返回真。如果它不能创建连接,返回假,例如,如果QObject不能检验<em>signal</em>或<em>member</em>的存在,或者如果它们的标签不协调。
<p> <p>也可以参考<a href="#disconnect">disconnect</a>()。
<p>实例:<a href="qactiongroup.html#x2084">action/actiongroup/editor.cpp</a>、<a href="qaction-application-example.html#x1103">action/main.cpp</a>、<a href="addressbook-example.html#x560">addressbook/main.cpp</a>、<a href="simple-application-example.html#x1550">application/main.cpp</a>、<a href="iconview-example.html#x1157">iconview/main.cpp</a>、<a href="mdi-example.html#x2068">mdi/main.cpp</a>和<a href="tutorial1-02.html#x2278">t2/main.cpp</a>。

<h3 class=fn>bool <a name="connect-2"></a>QObject::connect ( const&nbsp;<a href="qobject.html">QObject</a>&nbsp;*&nbsp;sender, const&nbsp;char&nbsp;*&nbsp;signal, const&nbsp;char&nbsp;*&nbsp;member ) const
</h3>
这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。
<p> 把从<em>sender</em>对象发送的<em>signal</em>和这个对象的<em>member</em>连接起来。
<p> 等于:<tt>QObject::connect(sender, signal, this, member)</tt>。
<p> <p>也可以参考<a href="#disconnect">disconnect</a>()。

<h3 class=fn>void <a name="connectNotify"></a>QObject::connectNotify ( const&nbsp;char&nbsp;*&nbsp;signal )<tt> [虚 保护]</tt>
</h3>
<p> 当某个东西被连接到这个对象的<em>signal</em>时,这个虚函数被调用。
<p> <b>警告:</b>这个函数违反了模块的面向对象的原则。不管如何,当你需要在某个东西连接到一个信号时执行昂贵的初始化时,这也许很有用。
<p> <p>也可以参考<a href="#connect">connect</a>() and <a href="#disconnectNotify">disconnectNotify</a>().

<h3 class=fn>void <a name="customEvent"></a>QObject::customEvent ( <a href="qcustomevent.html">QCustomEvent</a>&nbsp;* )<tt> [虚 保护]</tt>
</h3>
这个事件处理器可以在子类中重新实现来接收自定义事件。自定义事件就是至少类型值为<a href="qevent.html#Type-enum">QEvent::Type</a>枚举变量中的“User”项的用户定义的事件,并且通常为<a href="qcustomevent.html">QCustomEvent</a>或QCustomEvent的子类。
<p> <p>也可以参考<a href="#event">event</a>()和<a href="qcustomevent.html">QCustomEvent</a>。

<h3 class=fn>void <a name="deleteLater"></a>QObject::deleteLater ()<tt> [槽]</tt>
</h3>
执行这个对象的延期删除。
<p> 不是立即删除,这个函数当Qt返回主事件循环时延期执行删除事件的处理。

<h3 class=fn>void <a name="destroyed"></a>QObject::destroyed ()<tt> [信号]</tt>
</h3>
<p> 在对象被销毁之前,这个信号被立即发射。
<p> 在这个信号被发射之后,所有这个对象的子对象都被销毁。

<h3 class=fn>void <a name="destroyed-2"></a>QObject::destroyed ( <a href="qobject.html">QObject</a>&nbsp;*&nbsp;obj )<tt> [信号]</tt>
</h3>
这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。
<p> 在<em>obj</em>对象被销毁之前,这个信号被立即发射。
<p> 在这个信号被发射之后,所有这个对象的子对象都被销毁。

<h3 class=fn>bool <a name="disconnect"></a>QObject::disconnect ( const&nbsp;<a href="qobject.html">QObject</a>&nbsp;*&nbsp;sender, const&nbsp;char&nbsp;*&nbsp;signal, const&nbsp;<a href="qobject.html">QObject</a>&nbsp;*&nbsp;receiver, const&nbsp;char&nbsp;*&nbsp;member )<tt> [静态]</tt>
</h3>
取消从<em>sender</em>对象发送的<em>signal</em>和对象<em>receiver</em>中的<em>member</em>的连接。
<p> 当这两个有关对象中的一个被销毁时,这个信号——槽连接就被移除了。
<p> <a href="#disconnect">disconnect</a>()通常被用在三种方式下,正如下面的例子所描述的。
<ol type=1>
<li> 取消连接到一个对象的信号的任何事物:
<pre>
       <a href="#disconnect">disconnect</a>( myObject, 0, 0, 0 );
       </pre>
等于非静态重载函数
<pre>
       myObject-&gt;disconnect();
       </pre>
<li> 取消连接到一个特定信号的任何事物:
<pre>
       <a href="#disconnect">disconnect</a>( myObject, SIGNAL(mySignal()), 0, 0 );
       </pre>
等于非静态重载函数
<pre>
       myObject-&gt;disconnect( SIGNAL(mySignal()) );
       </pre>
<li> 取消一个特定接收者的所有连接:
<pre>
       <a href="#disconnect">disconnect</a>( myObject, 0, myReceiver, 0 );
       </pre>
等于非静态重载函数
<pre>
       myObject-&gt;disconnect(  myReceiver );
       </pre>
</ol>
<p> 0可以用做一个通配符,意义可能分别为“任何信号”、“任何接受对象”或者“一个接受对象中的任何槽”。
<p> <em>sender</em>不能为0。(你不能在一个调用中取消来自多于一个对象的信号的连接。)
<p> 如果<em>signal</em>为0,它取消所有和这个对象的信号连接的<em>receiver</em>和<em>member</em>。如果不是,只由特定信号被取消联接。
<p> 如果<em>receiver</em>为0,它取消连接到<em>signal</em>的任何事物。如果不是,只有<em>receiver</em>中的槽被取消连接。
<p> 如果<em>member</em>为0,它取消连接到<em>receiver</em>的任何事物。如果不是,只有名为<em>member</em>的槽被取消联接并且其它所有槽被保留。如果<em>receiver</em>被省去,<em>member</em>必须为0,所以你不能取消所有对象中同一特定名称槽的连接。
<p> <p>也可以参考<a href="#connect">connect</a>()。

<h3 class=fn>bool <a name="disconnect-2"></a>QObject::disconnect ( const&nbsp;char&nbsp;*&nbsp;signal = 0, const&nbsp;<a href="qobject.html">QObject</a>&nbsp;*&nbsp;receiver = 0, const&nbsp;char&nbsp;*&nbsp;member = 0 )
</h3>
这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。
<p> 取消和<em>receiver</em>中<em>member</em>连接的<em>signal</em>。
<p> 当这两个有关对象中的一个被销毁时,这个信号——槽连接就被移除了。

<h3 class=fn>bool <a name="disconnect-3"></a>QObject::disconnect ( const&nbsp;<a href="qobject.html">QObject</a>&nbsp;*&nbsp;receiver, const&nbsp;char&nbsp;*&nbsp;member = 0 )
</h3>
这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。
<p> 取消和<em>receiver</em>中<em>member</em>连接的这个信号中的所有信号。
<p> 当这两个有关对象中的一个被销毁时,这个信号——槽连接就被移除了。

<h3 class=fn>void <a name="disconnectNotify"></a>QObject::disconnectNotify ( const&nbsp;char&nbsp;*&nbsp;signal )<tt> [虚 保护]</tt>
</h3>
<p> 当和这个对象的<em>signal</em>连接的某个事物已经被取消联接时,这个虚函数被调用。

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -