このページでは

C

Qul::Signal Struct

struct Qul::Signal

QMLから接続可能なシグナルを作成します。詳細...

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

パブリック関数

bool isConnected() const
void operator()() const

詳細説明

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