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 ツールは、QML コードから onXxxx:{...} 構文を使用して接続できるシグナルを生成します。
シグナルのテンプレート引数は、関数のシグネチャでなければなりません。これには、qmlinterfacegenerator が qml に公開するために使用するパラメータ名も含まれます。
例:
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ライセンスの下で利用可能です。
詳細はこちらをご覧ください。