C
Qul::Signal Struct
struct Qul::SignalQMLから接続可能なシグナルを作成します。詳細...
| Header: | #include <qul/signal.h> |
| Since: | Qt Quick Ultralite 1.0 |
パブリック関数
| bool | isConnected() const |
| void | operator()() const |
詳細説明
Qul::Object 、Qul::Singleton から派生したクラスのメンバとしてシグナルを置くと、qmlinterfacegeneratorツールはonXxxx:{...}構文を使ってQMLコードから接続できるシグナルを生成します。
シグナルのテンプレート引数は、qmlに公開するためにqmlinterfacegeneratorによって使用されるパラメータ名を含む関数シグネチャでなければならない。
例
class MySingleton : public Qul::Singleton<MySingleton> { public: Qul::Signal<void()> changed; // signal without arguments Qul::Signal<void(int key, qreal value)> newValue; // signal with arguments };
これはQMLから次のように使うことができる:
MySingleton.onNewValue: console.log("Got a new value for key", key, ": ", value);
C++のコードからシグナルを出すには、operator()を使います。
MySingleton::instance().newValue(1, 3.141592);
もしシグナルメンバがQMLのシグナルハンドラと同じように呼び出された場合、on のプレフィックスがなく、小文字で始まるシグナルとして扱われます。
例
class MyObject : public Qul::Object { public: Qul::Signal<void()> onFoo; // signal named as QML signal handler };
これはQMLから次のように使うことができます:
Item {
MyObject {
id: myObject
onFoo: console.log("Foo signal invoked.")
}
MouseArea: {
onClicked: myObject.foo();
}
}メンバ関数ドキュメント
bool Signal::isConnected() const
このシグナルインスタンスにスロットまたは QML シグナルハンドラが接続されている場合はtrue を、そうでない場合はfalse を返します。
注意: スロットはQt Quick Ultralite が提供するパブリック API の一部ではありません。
void Signal::operator()() const
シグナルを発信する。
注意: この呼び出し演算子は、テンプレート引数Tがvoid または空でない場合、引数を持ちます。
特定の Qt ライセンスの下で利用可能です。
詳細はこちら。