?? qtimer.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/qtimer.cpp:42 -->
<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>QTimer類</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>QTimer類參考</h1>
<p>QTimer類提供了定時器信號和單觸發定時器。
<a href="#details">詳情請見……</a>
<p><tt>#include <<a href="qtimer-h.html">qtimer.h</a>></tt>
<p>繼承了<a href="qobject.html">QObject</a>。
<p><a href="qtimer-members.html">所有成員函數的列表。</a>
<h2>公有成員</h2>
<ul>
<li><div class=fn><a href="#QTimer"><b>QTimer</b></a> ( QObject * parent = 0, const char * name = 0 )</div></li>
<li><div class=fn><a href="#~QTimer"><b>~QTimer</b></a> ()</div></li>
<li><div class=fn>bool <a href="#isActive"><b>isActive</b></a> () const</div></li>
<li><div class=fn>int <a href="#start"><b>start</b></a> ( int msec, bool sshot = FALSE )</div></li>
<li><div class=fn>void <a href="#changeInterval"><b>changeInterval</b></a> ( int msec )</div></li>
<li><div class=fn>void <a href="#stop"><b>stop</b></a> ()</div></li>
</ul>
<h2>信號</h2>
<ul>
<li><div class=fn>void <a href="#timeout"><b>timeout</b></a> ()</div></li>
</ul>
<h2>靜態公有成員</h2>
<ul>
<li><div class=fn>void <a href="#singleShot"><b>singleShot</b></a> ( int msec, QObject * receiver, const char * member )</div></li>
</ul>
<hr><a name="details"></a><h2>詳細描述</h2>
QTimer類提供了定時器信號和單觸發定時器。
<p>
<p> 它在內部使用<a href="qtimerevent.html">定時器事件</a>來提供更通用的定時器。QTimer很容易使用:創建一個QTimer,使用<a href="#start">start</a>()來開始并且把它的<a href="#timeout">timeout</a>()連接到適當的槽。當這段時間過去了,它將會發射timeout()信號。
<p> 注意當QTimer的父對象被銷毀時,它也會被自動銷毀。
<p> 實例:
<pre>
QTimer *timer = new QTimer( myObject );
<a href="qobject.html#connect">connect</a>( timer, SIGNAL(<a href="#timeout">timeout</a>()), myObject, SLOT(timerDone()) );
timer-><a href="#start">start</a>( 2000, TRUE ); // 2秒單觸發定時器
</pre>
<p> 你也可以使用靜態的<a href="#singleShot">singleShot</a>()函數來創建單觸發定時器。
<p> 作為一個特殊情況,一旦窗口系統事件隊列中的所有事件都已經被處理完,一個定時為0的QTimer就會到時間了。
<p> 這也可以用來當提供迅速的用戶界面時來做比較繁重的工作。
<pre>
QTimer *t = new QTimer( myObject );
<a href="qobject.html#connect">connect</a>( t, SIGNAL(<a href="#timeout">timeout</a>()), SLOT(processOneThing()) );
t-><a href="#start">start</a>( 0, FALSE );
</pre>
<p> myObject->processOneThing()將會被重復調用并且應該很快返回(通常在處理一個數據項之后),這樣Qt可以把事件傳送給窗口部件并且一旦它完成這個工作就停止這個定時器。這是在圖形用戶界面應用程序中實現繁重的工作的一個典型方法,現在多線程可以在越來越多的平臺上使用,并且我們希望無效事件最終被線程替代。
<p> 注意QTimer的精確度依賴于底下的操作系統和硬件。絕大多數平臺支持20毫秒的精確度,一些平臺可以提供更高的。如果Qt不能傳送定時器觸發所要求的數量,它將會默默地拋棄一些。
<p> 另一個使用QTimer的方法是為你的對象調用<a href="qobject.html#startTimer">QObject::startTimer</a>()和在你的類中(當然必須繼承<a href="qobject.html">QObject</a>)重新實現<a href="qobject.html#timerEvent">QObject::timerEvent</a>()事件處理器。缺點是<a href="qobject.html#timerEvent">timerEvent</a>()不支持像單觸發定時器或信號那樣的高級水平。
<p> 一些操作系統限制可能用到的定時器的數量,Qt會盡力在限制范圍內工作。
<p>也可以參考<a href="events.html">事件類</a>和<a href="time.html">時間和日期</a>。
<hr><h2>成員函數文檔</h2>
<h3 class=fn><a name="QTimer"></a>QTimer::QTimer ( <a href="qobject.html">QObject</a> * parent = 0, const char * name = 0 )
</h3>
構造一個被稱作<em>name</em>,父對象為<em>parent</em>的定時器。
<p> 注意這個父對象的析構函數將會銷毀這個定時器對象。
<h3 class=fn><a name="~QTimer"></a>QTimer::~QTimer ()
</h3>
銷毀這個定時器。
<h3 class=fn>void <a name="changeInterval"></a>QTimer::changeInterval ( int msec )
</h3>
改變定時間隔為<em>msec</em>毫秒。
<p> 如果這個定時器信號是運行的,它將會被停止并且重新開始,否則它將會被開始。
<p> <p>也可以參考<a href="#start">start</a>()和<a href="#isActive">isActive</a>()。
<h3 class=fn>bool <a name="isActive"></a>QTimer::isActive () const
</h3>
<p> 如果定時器正在運行,返回真,否則返回假。
<p>實例:<a href="tutorial1-11.html#x2363">t11/cannon.cpp</a>。
<h3 class=fn>void <a name="singleShot"></a>QTimer::singleShot ( int msec, <a href="qobject.html">QObject</a> * receiver, const char * member )<tt> [靜態]</tt>
</h3>
這個靜態函數在一個給定時間間隔之后調用一個槽。
<p> 使用這個函數是非常方便的,因為你不需要被<a href="qobject.html#timerEvent">timerEvent</a>或創建一個本地QTimer對象所困擾。
<p> 實例:
<pre>
#include <<a href="qapplication-h.html">qapplication.h</a>>
#include <<a href="qtimer-h.html">qtimer.h</a>>
int main( int argc, char **argv )
{
<a href="qapplication.html">QApplication</a> a( argc, argv );
QTimer::<a href="#singleShot">singleShot</a>( 10*60*1000, &a, SLOT(<a href="qapplication.html#quit">quit</a>()) );
... // 創建并且顯示你的窗口部件
return a.<a href="qapplication.html#exec">exec</a>();
}
</pre>
<p> 這個示例程序會自動在10分鐘之后終止(也就是600000毫秒)。
<p> <em>receiver</em>是正在接收的對象并且<em>member</em>是一個槽。時間間隔是<em>msec</em>。
<h3 class=fn>int <a name="start"></a>QTimer::start ( int msec, bool sshot = FALSE )
</h3>
開始一個<em>msec</em>毫秒定時的定時器。
<p> 如果<em>sshot</em>為真,這個定時器將只會被激活一次,否則它將會持續到它被停止。
<p> 任何正在運行的定時器將被停止。
<p> <p>也可以參考<a href="#singleShot">singleShot</a>()、<a href="#stop">stop</a>()、<a href="#changeInterval">changeInterval</a>()和<a href="#isActive">isActive</a>()。
<p>實例:<a href="aclock-example.html#x1221">aclock/aclock.cpp</a>、<a href="dirview-example.html#x1741">dirview/dirview.cpp</a>、<a href="forever-example.html#x799">forever/forever.cpp</a>、<a href="hello-example.html#x1605">hello/hello.cpp</a>、<a href="tutorial1-11.html#x2364">t11/cannon.cpp</a>和<a href="tutorial1-13.html#x2394">t13/cannon.cpp</a>。
<h3 class=fn>void <a name="stop"></a>QTimer::stop ()
</h3>
停止這個定時器。
<p> <p>也可以參考<a href="#start">start</a>()。
<p>實例:<a href="dirview-example.html#x1742">dirview/dirview.cpp</a>、<a href="tutorial1-11.html#x2365">t11/cannon.cpp</a>、<a href="tutorial1-12.html#x2387">t12/cannon.cpp</a>和<a href="tutorial1-13.html#x2395">t13/cannon.cpp</a>。
<h3 class=fn>void <a name="timeout"></a>QTimer::timeout ()<tt> [信號]</tt>
</h3>
<p> 當定時器被激活時,這個信號被發射。
<p>實例:<a href="aclock-example.html#x1222">aclock/aclock.cpp</a>、<a href="dirview-example.html#x1743">dirview/dirview.cpp</a>、<a href="forever-example.html#x800">forever/forever.cpp</a>、<a href="hello-example.html#x1606">hello/hello.cpp</a>和<a href="tutorial1-11.html#x2366">t11/cannon.cpp</a>。
<!-- eof -->
<hr><p>
這個文件是<a href="index.html">Qt工具包</a>一部分。
版權所有 © 1995-2002
<a href="http://www.trolltech.com/">Trolltech</a>。保留所有權利。
<p><address><hr><div align=center>
<table width=100% cellspacing=0 border=0><tr>
<td>Copyright © 2002
<a href="http://www.trolltech.com">Trolltech</a>
<td><a href="http://www.trolltech.com/trademarks.html">Trademarks</a>
<td><a href="zh_CN.html">譯者:Cavendish</a>
<td align=right><div align=right>Qt 3.0.5版</div>
</table></div></address></body>
</html>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -