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

📄 qobject.html

📁 QT参考文档
💻 HTML
📖 第 1 页 / 共 4 页
字号:
<p> <b>警告:</b>这个函数违反了模块的面向对象的原则。不管如何,在对昂贵的资源访问进行最优化时,这个也许很有用处。
<p> <p>也可以参考<a href="#disconnect">disconnect</a>() and <a href="#connectNotify">connectNotify</a>().

<h3 class=fn>void <a name="dumpObjectInfo"></a>QObject::dumpObjectInfo ()
</h3>
调试输出这个对象的关于信号连接的消息等等。
<p> 在调试的时候这个函数很有用,但是如果库是在发布模式下(例如,没有任何调试信息)被编译的,它就不会做任何事情。

<h3 class=fn>void <a name="dumpObjectTree"></a>QObject::dumpObjectTree ()
</h3>
调试输出子对象树。
<p> 在调试的时候这个函数很有用,但是如果库是在发布模式下(例如,没有任何调试信息)被编译的,它就不会做任何事情。

<h3 class=fn>bool <a name="event"></a>QObject::event ( <a href="qevent.html">QEvent</a>&nbsp;*&nbsp;e )<tt> [虚]</tt>
</h3>
这个虚函数会接收到一个对象的事件并且应该在<em>e</em>事件被识别和处理时返回真。
<p> <a href="#event">event</a>()可以被重新实现来定义一个对象的行为。
<p> <p>也可以参考<a href="#installEventFilter">installEventFilter</a>()、<a href="#timerEvent">timerEvent</a>()、<a href="qapplication.html#sendEvent">QApplication::sendEvent</a>()、<a href="qapplication.html#postEvent">QApplication::postEvent</a>()和<a href="qwidget.html#event">QWidget::event</a>()。
<p>在<a href="qwidget.html#event">QWidget</a>中被重新实现。

<h3 class=fn>bool <a name="eventFilter"></a>QObject::eventFilter ( <a href="qobject.html">QObject</a>&nbsp;*&nbsp;watched, <a href="qevent.html">QEvent</a>&nbsp;*&nbsp;e )<tt> [虚]</tt>
</h3>
如果这个对象已经被安装为<em>watched</em>对象的一个事件过滤器,就过滤事件。
<p> 在这个函数你的重新实现中,如果你想过滤出<em>e</em>事件,比如,停止它的进一步处理,返回真,否则返回假。
<p> <b>警告:</b>如果你在这个函数中删除接收对象,请确认返回真。否则,Qt会把这个事件转给被删除的对象并且程序也许会崩溃。
<p> <p>也可以参考<a href="#installEventFilter">installEventFilter</a>()。
<p>在<a href="qaccel.html#eventFilter">QAccel</a>、<a href="qscrollview.html#eventFilter">QScrollView</a>和<a href="qspinbox.html#eventFilter">QSpinBox</a>中被重新实现。

<h3 class=fn>bool <a name="highPriority"></a>QObject::highPriority () const
</h3>
<p> 如果对象是一个高优先权的对象,返回真,或者如果它是一个标准优先权的对象,返回假。
<p> 高优先权对象被放置到QObject的子对象列表的开始,假设它们将被更频繁地引用。

<h3 class=fn>bool <a name="inherits"></a>QObject::inherits ( const&nbsp;char&nbsp;*&nbsp;clname ) const
</h3>
如果这个对象是继承<em>clname</em>的类的实例,并且<em>clname</em>继承QObject,那么返回真,否则返回假。
<p> 一个类可以被认为继承了它自己。
<p> 实例:
<pre>
        <a href="qtimer.html">QTimer</a> *t = new <a href="qtimer.html">QTimer</a>;         // QTimer继承QObject
        t-&gt;<a href="#inherits">inherits</a>( "QTimer" );        // 返回TRUE
        t-&gt;<a href="#inherits">inherits</a>( "QObject" );       // 返回TRUE
        t-&gt;<a href="#inherits">inherits</a>( "QButton" );       // 返回FALSE

        // QScrollBar继承QWidget和QRangeControl
        <a href="qscrollbar.html">QScrollBar</a> *s = new <a href="qscrollbar.html">QScrollBar</a>( 0 );
        s-&gt;<a href="#inherits">inherits</a>( "QWidget" );       // 返回TRUE
        s-&gt;<a href="#inherits">inherits</a>( "QRangeControl" ); // 返回FALSE
    </pre>
<p> (<a href="qrangecontrol.html">QRangeControl</a>不是一个QObject。)
<p> <p>也可以参考<a href="#isA">isA</a>()和<a href="#metaObject">metaObject</a>()。
<p>实例:<a href="statistics-example.html#x2630">table/statistics/statistics.cpp</a>、<a href="themes-example.html#x242">themes/metal.cpp</a>和<a href="themes-example.html#x172">themes/wood.cpp</a>。

<h3 class=fn>void <a name="insertChild"></a>QObject::insertChild ( <a href="qobject.html">QObject</a>&nbsp;*&nbsp;obj )<tt> [虚]</tt>
</h3>
插入对象<em>obj</em>到子对象列表中。
<p> <b>警告:</b>这个函数不能被用来把一个窗口部件变为另一个窗口部件的子窗口部件。子窗口部件只能通过在构造函数中的父窗口部件参数设置来被创建或者通过调用<a href="qwidget.html#reparent">QWidget::reparent</a>()。
<p> <p>也可以参考<a href="#removeChild">removeChild</a>()和<a href="qwidget.html#reparent">QWidget::reparent</a>()。

<h3 class=fn>void <a name="installEventFilter"></a>QObject::installEventFilter ( const&nbsp;<a href="qobject.html">QObject</a>&nbsp;*&nbsp;obj )
</h3>
安装事件过滤器<em>obj</em>到这个对象。
<p> 事件过滤器就是接收所有被发送到这个对象的事件的对象。这个过滤器可以停止事件或者把它再转给这个对象。事件过滤器<em>obj</em>通过它的<a href="#eventFilter">eventFilter</a>()函数来接收事件。如果事件被过滤了(比如,停止了),eventFilter()函数必须返回真,否则它必须返回假。
<p> 如果有多个事件过滤器被安装到同一个对象上,最后一个被安装的事件过滤器将先被激活。
<p> 实例:
<pre>
    #include &lt;<a href="qwidget-h.html">qwidget.h</a>&gt;

    class MyWidget : public <a href="qwidget.html">QWidget</a>
    {
        <a href="metaobjects.html#Q_OBJECT">Q_OBJECT</a>
    public:
        MyWidget( <a href="qwidget.html">QWidget</a> *parent = 0, const char *name = 0 );

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

    MyWidget::MyWidget( <a href="qwidget.html">QWidget</a> *parent, const char *name )
        : <a href="qwidget.html">QWidget</a>( parent, name )
    {
        // 为父对象(如果有的话)安装一个过滤器
        if ( parent )
            parent-&gt;<a href="#installEventFilter">installEventFilter</a>( this );
    }

    bool MyWidget::<a href="#eventFilter">eventFilter</a>( QObject *o, QEvent *e )
    {
        if ( e-&gt;type() == QEvent::KeyPress ) {
            // 对于键被按下进行特殊处理
            <a href="qkeyevent.html">QKeyEvent</a> *k = (QKeyEvent *)e;
            <a href="qapplication.html#qDebug">qDebug</a>( "Ate key press %d", k-&gt;<a href="qkeyevent.html#key">key</a>() );
            return TRUE; // 吃掉了这个事件
        } else {
            // 标准事件处理
            return QWidget::eventFilter( o, e );
        }
    }
    </pre>
 
<p> 例如,<a href="qaccel.html">QAccel</a>类使用这种技术来截取快捷键被按下。
<p> <b>警告:</b>如果在你的<a href="#eventFilter">eventFilter</a>()函数中你删除了接收对象,请确认返回真。否则,Qt会把这个事件转给被删除的对象并且程序也许会崩溃。
<p> <p>也可以参考<a href="#removeEventFilter">removeEventFilter</a>()、<a href="#eventFilter">eventFilter</a>()和<a href="#event">event</a>()。

<h3 class=fn>bool <a name="isA"></a>QObject::isA ( const&nbsp;char&nbsp;*&nbsp;clname ) const
</h3>
如果这个对象是<em>clname</em>类的实例,返回真,否则返回假。
<p> 实例:
<pre>
    <a href="qtimer.html">QTimer</a> *t = new <a href="qtimer.html">QTimer</a>; // QTimer继承QObject
    t-&gt;<a href="#isA">isA</a>( "QTimer" );     // 返回TRUE
    t-&gt;<a href="#isA">isA</a>( "QObject" );    // 返回FALSE
  </pre>
<p> <p>也可以参考<a href="#inherits">inherits</a>()和<a href="#metaObject">metaObject</a>()。

<h3 class=fn>bool <a name="isWidgetType"></a>QObject::isWidgetType () const
</h3>
<p> 如果这个对象是一个窗口部件,返回真,否则返回假。
<p> 调用这个函数等于调用<a href="#inherits">inherits</a>("QWidget"),但这个函数要快很多。

<h3 class=fn>void <a name="killTimer"></a>QObject::killTimer ( int&nbsp;id )
</h3>
通过定时器标识符<em>id</em>删除定时器。
<p> 当一个定时器事件开始时,定时器标识符由<a href="#startTimer">startTimer</a>()返回。
<p> <p>也可以参考<a href="#timerEvent">timerEvent</a>()、<a href="#startTimer">startTimer</a>()和<a href="#killTimers">killTimers</a>()。

<h3 class=fn>void <a name="killTimers"></a>QObject::killTimers ()
</h3>
删除这个对象中已经开始的所有定时器。
<p> <b>警告:</b>使用这个函数可能导致很难找到的bug:它会删除你在子类和超类中开始的定时器,这通常不是你所想要的。我们建议使用<a href="qtimer.html">QTimer</a>或者<a href="#killTimer">killTimer</a>()。
<p> <p>也可以参考<a href="#timerEvent">timerEvent</a>()、<a href="#startTimer">startTimer</a>()和<a href="#killTimer">killTimer</a>()。

<h3 class=fn><a href="qmetaobject.html">QMetaObject</a>&nbsp;* <a name="metaObject"></a>QObject::metaObject () const
</h3>
<p> 返回这个对象的<a href="metaobjects.html#meta-object">元对象</a>的指针。
<p> 元对象包含关于一个继承QObject的类的一些信息,比如,类名称、超类名称、属性、信号和槽。每个包含<a href="metaobjects.html#Q_OBJECT">Q_OBJECT</a>宏的类也都会有一个元对象。
<p> 在信号/槽连接机制和属性系统中需要元对象信息。函数<a href="#isA">isA</a>()和<a href="#inherits">inherits</a>()也使用元对象。

<h3 class=fn>const char * <a name="name"></a>QObject::name () const
</h3>
<p>返回这个对象的名称。详细情况请参考<a href="qobject.html#name-prop">“name”</a>属性。

<h3 class=fn>const char * <a name="name-2"></a>QObject::name ( const&nbsp;char&nbsp;*&nbsp;defaultName ) const
</h3>
这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。
<p> 返回这个对象的名称,或者如果这个对象没有名称返回<em>defaultName</em>。

<h3 class=fn><a href="qcstring.html">QCString</a> <a name="normalizeSignalSlot"></a>QObject::normalizeSignalSlot ( const&nbsp;char&nbsp;*&nbsp;signalSlot )<tt> [静态 保护]</tt>
</h3>
通过删除不是必需的控制符号来普通化信号或槽定义<em>signalSlot</em>。

<h3 class=fn>const&nbsp;<a href="qobjectlist.html">QObjectList</a>&nbsp;* <a name="objectTrees"></a>QObject::objectTrees ()<tt> [静态]</tt>
</h3>
返回所有对象树的列表的指针(它们的根对象),或者如果没有对象返回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> <p>也可以参考<a href="#children">children</a>()、<a href="#parent">parent</a>()、<a href="#insertChild">insertChild</a>()和<a href="#removeChild">removeChild</a>()。

<h3 class=fn><a href="qobject.html">QObject</a>&nbsp;* <a name="parent"></a>QObject::parent () const
</h3>
<p> 返回父对象的指针。
<p> <p>也可以参考<a href="#children">children</a>()。

⌨️ 快捷键说明

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