?? qobject.html
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- /home/reggie/tmp/qt-3.0-reggie-5401/qt-x11-commercial-3.0.5/src/kernel/qobject.cpp:92 -->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="Translator" content="Cavendish">
<meta name="Qt zh_CN Documents Website" content="http://www.qiliang.net/qt">
<title>QObject類</title>
<style type="text/css"><!--
h3.fn,span.fn { margin-left: 1cm; text-indent: -1cm; }
a:link { color: #004faf; text-decoration: none }
a:visited { color: #672967; text-decoration: none }
body { background: #ffffff; color: black; font-family: "Times New Roman" }
--></style>
</head>
<body>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr bgcolor="#E5E5E5">
<td valign=center>
<a href="index.html">
<font color="#004faf">主頁</font></a>
| <a href="classes.html">
<font color="#004faf">所有的類</font></a>
| <a href="mainclasses.html">
<font color="#004faf">主要的類</font></a>
| <a href="annotated.html">
<font color="#004faf">注釋的類</font></a>
| <a href="groups.html">
<font color="#004faf">分組的類</font></a>
| <a href="functions.html">
<font color="#004faf">函數</font></a>
</td>
<td align="right" valign="center"><img src="logo32.png" align="right" width="64" height="32" border="0"></td></tr></table>
<h1 align=center>QObject類參考</h1>
<p>QObject類是所有Qt對象的基類。
<a href="#details">詳情請見……</a>
<p><tt>#include <<a href="qobject-h.html">qobject.h</a>></tt>
<p>繼承了<a href="qt.html">Qt</a>。
<p>被<a href="qaccel.html">QAccel</a>、<a href="qaccessibleobject.html">QAccessibleObject</a>、<a href="qaction.html">QAction</a>、<a href="qapplication.html">QApplication</a>、<a href="qdatapump.html">QDataPump</a>、<a href="qwidget.html">QWidget</a>、<a href="qcanvas.html">QCanvas</a>、<a href="qstyle.html">QStyle</a>、<a href="qclipboard.html">QClipboard</a>、<a href="qcopchannel.html">QCopChannel</a>、<a href="qdns.html">QDns</a>、<a href="qlayout.html">QLayout</a>、<a href="qdragobject.html">QDragObject</a>、<a href="qeditorfactory.html">QEditorFactory</a>、<a href="qfileiconprovider.html">QFileIconProvider</a>、<a href="qnetworkprotocol.html">QNetworkProtocol</a>、<a href="qserversocket.html">QServerSocket</a>、<a href="qwskeyboardhandler.html">QWSKeyboardHandler</a>、<a href="qnetworkoperation.html">QNetworkOperation</a>、<a href="qnpinstance.html">QNPInstance</a>、<a href="qobjectcleanuphandler.html">QObjectCleanupHandler</a>、<a href="qprocess.html">QProcess</a>、<a href="qsessionmanager.html">QSessionManager</a>、<a href="qsignal.html">QSignal</a>、<a href="qsignalmapper.html">QSignalMapper</a>、<a href="qsocket.html">QSocket</a>、<a href="qsocketnotifier.html">QSocketNotifier</a>、<a href="qsound.html">QSound</a>、<a href="qsqldatabase.html">QSqlDatabase</a>、<a href="qsqldriver.html">QSqlDriver</a>、<a href="qsqlform.html">QSqlForm</a>、<a href="qstylesheet.html">QStyleSheet</a>、<a href="qtimer.html">QTimer</a>、<a href="qtooltipgroup.html">QToolTipGroup</a>、<a href="qtranslator.html">QTranslator</a>、<a href="qurloperator.html">QUrlOperator</a>、<a href="qvalidator.html">QValidator</a>和<a href="qwsmousehandler.html">QWSMouseHandler</a>繼承。
<p><a href="qobject-members.html">所有成員函數的列表。</a>
<h2>公有成員</h2>
<ul>
<li><div class=fn><a href="#QObject"><b>QObject</b></a> ( QObject * parent = 0, const char * name = 0 )</div></li>
<li><div class=fn>virtual <a href="#~QObject"><b>~QObject</b></a> ()</div></li>
<li><div class=fn>const char * <a href="#className"><b>className</b></a> () const</div></li>
<li><div class=fn>QString <a href="#tr"><b>tr</b></a> ( const char * sourceText, const char * comment ) const</div></li>
<li><div class=fn>QString <a href="#trUtf8"><b>trUtf8</b></a> ( const char * sourceText, const char * comment ) const</div></li>
<li><div class=fn>QMetaObject * <a href="#metaObject"><b>metaObject</b></a> () const</div></li>
<li><div class=fn>virtual bool <a href="#event"><b>event</b></a> ( QEvent * e )</div></li>
<li><div class=fn>virtual bool <a href="#eventFilter"><b>eventFilter</b></a> ( QObject * watched, QEvent * e )</div></li>
<li><div class=fn>bool <a href="#isA"><b>isA</b></a> ( const char * clname ) const</div></li>
<li><div class=fn>bool <a href="#inherits"><b>inherits</b></a> ( const char * clname ) const</div></li>
<li><div class=fn>const char * <a href="#name"><b>name</b></a> () const</div></li>
<li><div class=fn>const char * <a href="#name-2"><b>name</b></a> ( const char * defaultName ) const</div></li>
<li><div class=fn>virtual void <a href="#setName"><b>setName</b></a> ( const char * name )</div></li>
<li><div class=fn>bool <a href="#isWidgetType"><b>isWidgetType</b></a> () const</div></li>
<li><div class=fn>bool <a href="#highPriority"><b>highPriority</b></a> () const</div></li>
<li><div class=fn>bool <a href="#signalsBlocked"><b>signalsBlocked</b></a> () const</div></li>
<li><div class=fn>void <a href="#blockSignals"><b>blockSignals</b></a> ( bool block )</div></li>
<li><div class=fn>int <a href="#startTimer"><b>startTimer</b></a> ( int interval )</div></li>
<li><div class=fn>void <a href="#killTimer"><b>killTimer</b></a> ( int id )</div></li>
<li><div class=fn>void <a href="#killTimers"><b>killTimers</b></a> ()</div></li>
<li><div class=fn>QObject * <a href="#child"><b>child</b></a> ( const char * objName, const char * inheritsClass = 0, bool recursiveSearch = TRUE )</div></li>
<li><div class=fn>const QObjectList * <a href="#children"><b>children</b></a> () const</div></li>
<li><div class=fn>QObjectList * <a href="#queryList"><b>queryList</b></a> ( const char * inheritsClass = 0, const char * objName = 0, bool regexpMatch = TRUE, bool recursiveSearch = TRUE ) const</div></li>
<li><div class=fn>virtual void <a href="#insertChild"><b>insertChild</b></a> ( QObject * obj )</div></li>
<li><div class=fn>virtual void <a href="#removeChild"><b>removeChild</b></a> ( QObject * obj )</div></li>
<li><div class=fn>void <a href="#installEventFilter"><b>installEventFilter</b></a> ( const QObject * obj )</div></li>
<li><div class=fn>void <a href="#removeEventFilter"><b>removeEventFilter</b></a> ( const QObject * obj )</div></li>
<li><div class=fn>bool <a href="#connect-2"><b>connect</b></a> ( const QObject * sender, const char * signal, const char * member ) const</div></li>
<li><div class=fn>bool <a href="#disconnect-2"><b>disconnect</b></a> ( const char * signal = 0, const QObject * receiver = 0, const char * member = 0 )</div></li>
<li><div class=fn>bool <a href="#disconnect-3"><b>disconnect</b></a> ( const QObject * receiver, const char * member = 0 )</div></li>
<li><div class=fn>void <a href="#dumpObjectTree"><b>dumpObjectTree</b></a> ()</div></li>
<li><div class=fn>void <a href="#dumpObjectInfo"><b>dumpObjectInfo</b></a> ()</div></li>
<li><div class=fn>virtual bool <a href="#setProperty"><b>setProperty</b></a> ( const char * name, const QVariant & value )</div></li>
<li><div class=fn>virtual QVariant <a href="#property"><b>property</b></a> ( const char * name ) const</div></li>
<li><div class=fn>QObject * <a href="#parent"><b>parent</b></a> () const</div></li>
</ul>
<h2>公有槽</h2>
<ul>
<li><div class=fn>void <a href="#deleteLater"><b>deleteLater</b></a> ()</div></li>
</ul>
<h2>信號</h2>
<ul>
<li><div class=fn>void <a href="#destroyed"><b>destroyed</b></a> ()</div></li>
<li><div class=fn>void <a href="#destroyed-2"><b>destroyed</b></a> ( QObject * obj )</div></li>
</ul>
<h2>靜態(tài)公有成員</h2>
<ul>
<li><div class=fn>const QObjectList * <a href="#objectTrees"><b>objectTrees</b></a> ()</div></li>
<li><div class=fn>bool <a href="#connect"><b>connect</b></a> ( const QObject * sender, const char * signal, const QObject * receiver, const char * member )</div></li>
<li><div class=fn>bool <a href="#disconnect"><b>disconnect</b></a> ( const QObject * sender, const char * signal, const QObject * receiver, const char * member )</div></li>
</ul>
<h2>屬性</h2>
<ul>
<li><div class=fn>QCString <a href="#name-prop"><b>name</b></a> - 這個對象的名稱</div></li>
</ul>
<h2>保護成員</h2>
<ul>
<li><div class=fn>const QObject * <a href="#sender"><b>sender</b></a> ()</div></li>
<li><div class=fn>virtual void <a href="#timerEvent"><b>timerEvent</b></a> ( QTimerEvent * )</div></li>
<li><div class=fn>virtual void <a href="#childEvent"><b>childEvent</b></a> ( QChildEvent * )</div></li>
<li><div class=fn>virtual void <a href="#customEvent"><b>customEvent</b></a> ( QCustomEvent * )</div></li>
<li><div class=fn>virtual void <a href="#connectNotify"><b>connectNotify</b></a> ( const char * signal )</div></li>
<li><div class=fn>virtual void <a href="#disconnectNotify"><b>disconnectNotify</b></a> ( const char * signal )</div></li>
<li><div class=fn>virtual bool <a href="#checkConnectArgs"><b>checkConnectArgs</b></a> ( const char * signal, const QObject * receiver, const char * member )</div></li>
</ul>
<h2>靜態(tài)保護成員</h2>
<ul>
<li><div class=fn>QCString <a href="#normalizeSignalSlot"><b>normalizeSignalSlot</b></a> ( const char * signalSlot )</div></li>
</ul>
<h2>相關函數</h2>
<ul>
<li><div class=fn>void * <a href="#qt_find_obj_child"><b>qt_find_obj_child</b></a> ( QObject * parent, const char * type, const char * name )</div></li>
</ul>
<hr><a name="details"></a><h2>詳細描述</h2>
QObject類是所有Qt對象的基類。
<p>
<p> QObject是<a href="object.html">Qt對象模型</a>的中心。這個模型的中心特征就是一種用于無縫對象通訊的被叫做<a href="signalsandslots.html">信號和槽</a>的非常強大的機制。你能夠使用<a href="#connect">connect</a>()把信號和槽連接起來并且可以用<a href="#disconnect">disconnect</a>()來破壞這種連接。為了避免從不結束的通知循環(huán),你可以調用<a href="#blockSignals">blockSignals</a>()臨時地阻塞信號。保護函數<a href="#connectNotify">connectNotify</a>()和<a href="#disconnectNotify">disconnectNotify</a>()使跟蹤連接成為可能。
<p> QObject把它們自己組織在對象樹中。當你創(chuàng)建一個QObject作為其它對象的父對象,這個對象會在父對象中自動調用<a href="#insertChild">insertChild</a>()并且可以在父對象的<a href="#children">children</a>()列表中顯示出來。父對象擁有這個對象,比如,它將在它的析構函數中自動刪除它的孩子。你可以使用<a href="#child">child</a>()或者<a href="#queryList">queryList</a>()通過名稱和任意的類型來查找一個對象,并且使用<a href="#objectTrees">objectTrees</a>()來獲得樹根的列表。
<p> 每個對象都有一個對象名稱(<a href="#name">name</a>()),能夠報告它的類名(<a href="#className">className</a>())并且它在QObject繼承層次中是否繼承了另一個類(<a href="#inherits">inherits</a>())。
<p> 當對象被刪除時,它發(fā)射<a href="#destroyed">destroyed</a>()信號。你可以捕獲這個信號來避免對QObject的搖擺引用。<a href="qguardedptr.html">QGuardedPtr</a>類提供了一種文雅的方式來使用這個機制。
<p> QObject可以通過<a href="#event">event</a>()接收事件并且過濾其它對象的事件。詳細情況請參考<a href="#installEventFilter">installEventFilter</a>()和<a href="#eventFilter">eventFilter</a>()。一個方便的處理者,<a href="#childEvent">childEvent</a>(),能夠被重新實現(xiàn)來捕獲子對象事件。
<p> 最后但不是最不重要的一點,QObject提供了Qt中最基本的定時器,關于定時器的高級支持請參考<a href="qtimer.html">QTimer</a>。
<p> 注意<a href="metaobjects.html#Q_OBJECT">Q_OBJECT</a>宏對于任何實現(xiàn)信號、槽和屬性的對象都是強制的。你也需要對源文件運行<a href="moc.html">moc程序(元對象編譯器)</a>。我們強烈建議在QObject的<em>所有</em>子類中使用這個宏,而不管它是不是實際使用了信號、槽和屬性,因為不這樣做也許會導致普通函數會出現(xiàn)為定義的問題。
<p> 所有的Qt窗口部件繼承了QObject。方便的函數<a href="#isWidgetType">isWidgetType</a>()返回這個對象實際上是不是一個窗口部件。它比<a href="#inherits">inherits</a>( "QWidget" )快得多。
<p> 一些QObject函數,比如<a href="#children">children</a>()、<a href="#objectTrees">objectTrees</a>()和<a href="#queryList">queryList</a>()返回一個<a href="qobjectlist.html">QObjectList</a>。QObjectList是QObject的<a href="qptrlist.html">QPtrList</a>。QObjectLists支持像QPtrLists同樣的操作并且又一個迭代器類<a href="qobjectlistit.html">QObjectListIt</a>。
<p>也可以參考<a href="objectmodel.html">對象模型</a>。
<hr><h2>成員函數文檔</h2>
<h3 class=fn><a name="QObject"></a>QObject::QObject ( <a href="qobject.html">QObject</a> * parent = 0, const char * name = 0 )
</h3>
構造一個父對象為<em>parent</em>,叫做<em>name</em>的對象。
<p> 對象的父對象也許可以看做這個對象的所有者。例如,一個<a href="qdialog.html">對話框</a>是它包含的“OK”和“Cancel”按鈕的父對象。
<p> 父對象的析構函數銷毀所有的子對象。
<p> 設置<em>parent</em>為0時,構造一個沒有父對象的對象。如果一個對象是窗口部件,它將會成為一個頂級窗口。
<p> 對象名稱就是可以用來識別一個QObject的一些文本。它在和<a href="designer-manual.html"><i>Qt設計器</i></a>聯(lián)合使用的時候特別有用。你可以使用<a href="#child">child</a>()來通過名稱(和類型)找到一個對象。使用<a href="#queryList">queryList</a>()可以找到幾個對象。
<p> <p>也可以參考<a href="#parent">parent</a>()、<a href="#name-prop">name</a>、<a href="#child">child</a>()和<a href="#queryList">queryList</a>()。
<h3 class=fn><a name="~QObject"></a>QObject::~QObject ()<tt> [虛]</tt>
</h3>
銷毀這個對象,刪除它的所有子對象。
<p> 到這個對象的信號和從這個對象發(fā)出的信號被自動地取消連接。
<p> <b>警告:</b>所有子對象被刪除。如果這些對象中的任何一個在棧中或者是全局的,遲早或稍后你的程序將會崩潰。我們不建議在父對象的外面保存值對象的指針。如果你要這么做,當對象銷毀時,<a href="#destroyed">QObject::destroyed</a>()信號會給你一個機會來進行檢測。
<h3 class=fn>void <a name="blockSignals"></a>QObject::blockSignals ( bool block )
</h3>
如果<em>block</em>為真,阻塞信號,或者如果<em>block</em>為假,取消信號阻塞。
<p> 如果信號被阻塞,被發(fā)射的信號消失在超空間。
<p>實例:<a href="rot-example.html#x1557">rot13/rot13.cpp</a>。
<h3 class=fn>bool <a name="checkConnectArgs"></a>QObject::checkConnectArgs ( const char * signal, const <a href="qobject.html">QObject</a> * receiver, const char * member )<tt> [虛 保護]</tt>
</h3>
<p> 如果<em>signal</em>和<em>member</em>參數是協(xié)調的,返回真,否則返回假。(<em>receiver</em>參數通常被忽略。)
<p> <b>警告:</b>我們建議你使用默認實現(xiàn)不要再重新實現(xiàn)這個函數。
<p>
<h3 class=fn><a href="qobject.html">QObject</a> * <a name="child"></a>QObject::child ( const char * objName, const char * inheritsClass = 0, bool recursiveSearch = TRUE )
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -