<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # QTimer Class Reference ## [[QtCore](index.htm) module] 該QTimer的類提供了重復和單觸發定時器。[More...](#details) 繼承[QObject](qobject.html)。 ### Methods * `__init__ (self, QObject?parent?=?None)` * `int interval (self)` * `bool isActive (self)` * `bool isSingleShot (self)` * `setInterval (self, int?msec)` * `setSingleShot (self, bool?asingleShot)` * `start (self, int?msec)` * `start (self)` * `stop (self)` * `timerEvent (self, QTimerEvent)` * `int timerId (self)` ### Static Methods * `singleShot (int?msec, QObject?receiver, SLOT()SLOT()?member)` * `singleShot (int?msec, callable?receiver)` ### Qt Signals * `void timeout ()` * * * ## Detailed Description 該QTimer的類提供了重復和單觸發定時器。 該QTimer的類提供了一個高層次的編程接口,用于定時器。要使用它,創建一個QTimer的,其連接[timeout](qtimer.html#timeout)( )信號到相應的插槽,和呼叫[start](qtimer.html#start)( ) 。從那時起,它將發出[timeout](qtimer.html#timeout)()信號以恒定的間隔。 例如對于一個一秒鐘( 1000毫秒)計時器(從[Analog Clock](index.htm)為例): ``` QTimer *timer = new QTimer(this); connect(timer, SIGNAL(timeout()), this, SLOT(update())); timer->start(1000); ``` 從這時起,在`update()`槽被調用每一秒。 你可以通過調用setSingleShot (真)設置一個計時器超時只有一次。您也可以使用靜態[QTimer.singleShot](qtimer.html#singleShot)( )函數在指定的時間間隔后調用一個槽: ``` QTimer.singleShot(200, this, SLOT(updateCaption())); ``` 在多線程應用程序中,您可以在具有一個事件循環的任何線程使用QTimer的。要開始從非GUI線程,使用一個事件循環[QThread.exec](qthread.html#exec)( ) 。 Qt使用定時器的[thread affinity](qobject.html#thread)以確定哪個線程會放出[timeout()](qtimer.html#timeout)信號。正因為如此,你必須啟動和停止在其線程計時器,它是不可能的,開始從另一個線程的計時器。 作為一個特例,為0的超時QTimer的將超時只要在窗口系統的事件隊列中的所有事件都被處理。這可以用來做繁重的工作,同時提供迅速的用戶界面: ``` QTimer *timer = new QTimer(this); connect(timer, SIGNAL(timeout()), this, SLOT(processOneThing())); timer->start(); ``` `processOneThing()`將從此被重復調用。它應該寫在這樣一種方式,它總是很快返回(通常在處理一個數據項之后),這樣Qt可以把事件傳送給窗口部件,一旦它已經完成了它的一切工作停止計時器。這是實現GUI應用程序中繁重的工作的傳統方式,多線程,現在越來越多的平臺變得可用,而我們預期的零毫秒QTimers將逐漸被取代[QThread](qthread.html)秒。 ### Accuracy and Timer Resolution 定時器永不超時早于指定超時值,他們不能保證超時在指定的精確值。在許多情況下,它們可能會超時遲到了一段時間,它取決于該系統定時器的精度。 定時器的精度取決于底層操作系統和硬件。大多數平臺支持1毫秒的分辨率,雖然計時器的精度不會在許多實際情況下等于該決議。 如果Qt是不能傳送定時器觸發的請求數量,它會悄悄地丟棄一些。 ### Alternatives to QTimer 另一種使用QTimer的方法是調用[QObject.startTimer](qobject.html#startTimer)( )為對象,并重新實現[QObject.timerEvent](qobject.html#timerEvent)在你的類()事件處理程序(它必須繼承[QObject](qobject.html)) 。其缺點是[timerEvent](qtimer.html#timerEvent)( )不支持這種高層次的特點單觸發定時器或信號。 另一個替代使用QTimer的方法是使用[QBasicTimer](qbasictimer.html)。它通常比使用較不笨重[QObject.startTimer](qobject.html#startTimer)( )直接。看[Timers](index.htm)對于所有三種方法的概述。 某些操作系統會限制定時器,可用于數; Qt會試著解決這些限制。 * * * ## Method Documentation ``` QTimer.__init__ (self, QObject?parent?=?None) ``` 該_parent_的說法,如果不是沒有,原因_self_通過Qt的,而不是PyQt的擁有。 構造一個定時器與給定_parent_。 ``` int QTimer.interval (self) ``` ``` bool QTimer.isActive (self) ``` ``` bool QTimer.isSingleShot (self) ``` ``` QTimer.setInterval (self, int?msec) ``` ``` QTimer.setSingleShot (self, bool?asingleShot) ``` ``` QTimer.singleShot (int?msec, QObject?receiver, SLOT()SLOT()?member) ``` 一個給定的時間間隔后這個靜態函數調用一個插槽。 這是非常方便的使用此功能,因為您不需要打擾了[timerEvent](qobject.html#timerEvent)或者創建本地[QTimer](qtimer.html)對象。 例如: ``` #include <QApplication> #include <QTimer> int main(int argc, char *argv[]) { [QApplication](qapplication.html) app(argc, argv); [QTimer](qtimer.html).singleShot(600000, &app, SLOT(quit())); ... return app.exec(); } ``` 此示例程序10分鐘( 600,000毫秒)后自動終止。 該_receiver_為接收對象和_member_是槽。的時間間隔是_msec_毫秒。 **Note:**這個功能是[reentrant](index.htm#reentrant)。 **See also** [setSingleShot](qtimer.html#singleShot-prop)()和[start](qtimer.html#start)( ) 。 ``` QTimer.singleShot (int?msec, callable?receiver) ``` ``` QTimer.start (self, int?msec) ``` 這種方法也是一個Qt槽與C + +的簽名`void start(int)`。 開始或重新開始的超時間隔定時器_msec_毫秒。 如果計時器已經在運行,這將是[stopped](qtimer.html#stop)并重新啟動。 If [singleShot](qtimer.html#singleShot-prop)誠然,定時器將只能激活一次。 ``` QTimer.start (self) ``` 這種方法也是一個Qt槽與C + +的簽名`void start()`。 這個函數的重載[start](qtimer.html#start)( ) 。 啟動或重新啟動在指定的超時定時器[interval](qtimer.html#interval-prop)。 如果計時器已經在運行,這將是[stopped](qtimer.html#stop)并重新啟動。 If [singleShot](qtimer.html#singleShot-prop)誠然,定時器將只能激活一次。 ``` QTimer.stop (self) ``` 這種方法也是一個Qt槽與C + +的簽名`void stop()`。 停止計時器。 **See also** [start](qtimer.html#start)( ) 。 ``` QTimer.timerEvent (self, QTimerEvent) ``` 從重新實現[QObject.timerEvent](qobject.html#timerEvent)( ) 。 ``` int QTimer.timerId (self) ``` 返回如果計時器正在運行的定時器的ID ,否則返回-1 。 * * * ## Qt Signal Documentation ``` void timeout () ``` 這是該信號的默認超載。 這個信號被發射時,定時器超時。 **See also** [interval](qtimer.html#interval-prop),[start](qtimer.html#start)()和[stop](qtimer.html#stop)( ) 。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看