このページでは

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::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ライセンスの下で利用可能です。
詳細はこちらをご覧ください。