このページでは

C

Qul::Timer Class

class Qul::Timer

繰り返しタイマーやシングルショットタイマーを実行する方法を提供します。詳細...

Header: #include <qul/timer.h>
Since: Qt Quick Ultralite 1.0

パブリック関数

Timer(int interval = 0)
virtual ~Timer() override
int interval() const
bool isActive() const
bool isSingleShot() const
void onTimeout(const FuncArg &f)
void setInterval(int msec)
void setSingleShot(bool singleShot)
void start()
void start(int msec)
void stop()

詳細説明

C++11 ラムダを使用した例:

Qul::Timer timer;
timer.onTimeout([]() { printf("triggered\n"); });
timer.start(1000); // will trigger every second

ファンクタを使った例

struct Functor {
    void operator()() { printf("triggered\n"); }
};

Qul::Timer timer;
timer.onTimeout(Functor());
timer.setSingleShot(true);
timer.start(60000); // trigger once in a minute

QMLオブジェクトでの例

struct MinuteCounter : Qul::Object
{
    Qul::Property<int> minutes;

    void start() {
        _countMinutes.onTimeout([this]() { minutes.set(minutes.get() + 1); });
        _countMinutes.start(60000);
    }
private:
    Qul::Timer _countMinutes;
};

メンバ関数のドキュメント

[explicit] Timer::Timer(int interval = 0)

新しいタイマーをインスタンス化する。

interval (デフォルト:0)を指定できる。タイマーのデフォルトの動作は繰り返しです。setSingleShot(true)を使用すると、一度だけ起動します。

タイマーは自動的に開始されない。開始するにはstart() を使用する。

[override virtual noexcept] Timer::~Timer()

自動的にタイマーを停止

int Timer::interval() const

区間を返す

setIntervalも参照してください

bool Timer::isActive() const

タイマーが実行中(保留中)であればtrueを返し、そうでなければfalseを返す。

bool Timer::isSingleShot() const

シングルショットタイマーの場合はTrue を、そうでない場合はFalse を返す。

setSingleShotも参照のこと

template <typename FuncArg> void Timer::onTimeout(const FuncArg &f)

コールバックとして callable オブジェクトを設定する。

引数f は、ラムダやstd::function、あるいはoperator()を持つ構造体など、呼び出し可能なオブジェクトでなければなりません。

この関数は、タイマーがトリガーされるたびに呼び出されます。

この関数を何度か呼び出すと、最後に呼び出されたコールバックだけがアクティブになります。

start およびsetSingleShotも参照してください

void Timer::setInterval(int msec)

にタイムアウト間隔をミリ秒単位で設定する。msec

アクティブなタイマーの間隔を設定しても、次のイベントは変更されない。

intervalも参照のこと

void Timer::setSingleShot(bool singleShot)

タイマーがsingleShot タイマーかどうかを設定する。

シングルショットタイマーは一度だけ起動し、シングルショットでないタイマーはinterval ミリ秒ごとに起動する。

デフォルト値はFalse

isSingleShotも参照

void Timer::start()

タイマーの開始または再起動

タイマーがすでに作動している場合、タイマーは停止され、再開されます。

singleShotがtrueの場合、タイマーは一度だけ起動します。

stopも参照してください

void Timer::start(int msec)

ミリ秒のタイムアウト間隔でタイマーを開始または再起動します。

タイマーがすでに作動している場合は、一旦停止してから再スタートします。

singleShotがtrueの場合、タイマーは一度だけ起動します。

stopも参照してください

void Timer::stop()

タイマーを停止する。

startも参照してください

特定の Qt ライセンスの下で利用可能です。
詳細はこちら。