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 ライセンスの下で利用可能です。
詳細はこちら。