このページでは

QDBusArgument Class

QDBusArgument クラスは、D-Bus 引数のマーシャリングおよびデマーシャリングに使用されます。詳細...

ヘッダー: #include <QDBusArgument>
CMake: find_package(Qt6 REQUIRED COMPONENTS DBus)
target_link_libraries(mytarget PRIVATE Qt6::DBus)
qmake: QT += dbus

パブリック型

enum ElementType { BasicType, VariantType, ArrayType, StructureType, MapType, …, UnknownType }

パブリック関数

QDBusArgument()
QDBusArgument(const QDBusArgument &other)
~QDBusArgument()
QVariant asVariant() const
bool atEnd() const
void beginArray() const
void beginArray(QMetaType id)
void beginMap() const
void beginMap(QMetaType keyMetaType, QMetaType valueMetaType)
void beginMapEntry()
void beginMapEntry() const
void beginStructure()
void beginStructure() const
QDBusArgument::ElementType currentType() const
void endArray()
void endArray() const
void endMap()
void endMap() const
void endMapEntry()
void endMapEntry() const
void endStructure()
void endStructure() const
void swap(QDBusArgument &other)
QDBusArgument &operator<<(uchar arg)
QDBusArgument &operator<<(bool arg)
QDBusArgument &operator<<(const QByteArray &arg)
QDBusArgument &operator<<(const QDBusVariant &arg)
QDBusArgument &operator<<(const QString &arg)
QDBusArgument &operator<<(const QStringList &arg)
QDBusArgument &operator<<(double arg)
QDBusArgument &operator<<(int arg)
QDBusArgument &operator<<(qlonglong arg)
QDBusArgument &operator<<(qulonglong arg)
QDBusArgument &operator<<(short arg)
QDBusArgument &operator<<(uint arg)
QDBusArgument &operator<<(ushort arg)
QDBusArgument &operator=(const QDBusArgument &other)
const QDBusArgument &operator>>(uchar &arg) const
const QDBusArgument &operator>>(QByteArray &arg) const
const QDBusArgument &operator>>(QDBusVariant &arg) const
const QDBusArgument &operator>>(QString &arg) const
const QDBusArgument &operator>>(QStringList &arg) const
const QDBusArgument &operator>>(bool &arg) const
const QDBusArgument &operator>>(double &arg) const
const QDBusArgument &operator>>(int &arg) const
const QDBusArgument &operator>>(qlonglong &arg) const
const QDBusArgument &operator>>(qulonglong &arg) const
const QDBusArgument &operator>>(short &arg) const
const QDBusArgument &operator>>(uint &arg) const
const QDBusArgument &operator>>(ushort &arg) const
QMetaType qDBusRegisterMetaType()
T qdbus_cast(const QDBusArgument &arg)

詳細な説明

このクラスは、D-Busを介してリモートアプリケーションに引数を送信し、それらを受け取るために使用されます。D-Busは、いくつかのプリミティブ型とその組み合わせに基づいた、拡張可能な型システムを提供しています。型システムの詳細については、「Qt D-Bus の型システム」のページを参照してください。

QDBusArgumentは、Qt D-Bus 型システムの中核となるクラスであり、プリミティブ型のマーシャリングおよびデマーシャリングを行う関数を提供します。複合型は、配列、辞書、または構造体内で1つ以上のプリミティブ型を組み合わせることで作成されます。

以下の例は、Qt D-Bus の型システムを使用して、整数と文字列を含む構造体を構築する方法を示しています:

struct MyStructure
{
    int count;
    QString name;

    // ...
};
Q_DECLARE_METATYPE(MyStructure)

// Marshall the MyStructure data into a D-Bus argument
QDBusArgument &operator<<(QDBusArgument &argument, const MyStructure &myStruct)
{
    argument.beginStructure();
    argument << myStruct.count << myStruct.name;
    argument.endStructure();
    return argument;
}

// Retrieve the MyStructure data from the D-Bus argument
const QDBusArgument &operator>>(const QDBusArgument &argument, MyStructure &myStruct)
{
    argument.beginStructure();
    argument >> myStruct.count >> myStruct.name;
    argument.endStructure();
    return argument;
}

この型を QDBusArgument で使用するには、事前に `qDBusRegisterMetaType()` で登録する必要があります。したがって、プログラムのどこかに以下のコードを追加する必要があります:

qDBusRegisterMetaType<MyStructure>();

一度登録されると、その型は送信側のメソッド呼び出し(QDBusAbstractInterface::call() で指定されるもの)、登録済みオブジェクトからのシグナル発信、またはリモートアプリケーションからの受信呼び出しで使用できるようになります。

構造体の場合、operator<< およびoperator>> のストリーミング関数は、読み取り時および書き込み時(マーシャリングおよびデマーシャリング)のいずれにおいても、常に同じ数のエントリを生成しなければならないことに注意してください。そうしないと、呼び出しやシグナルが黙って失敗し始める可能性があります。

以下の例は、無効なデータを含む可能性のあるクラスにおける、この誤った使用法を示しています。

//bad code
    // Wrongly marshall the MyTime data into a D-Bus argument
    QDBusArgument &operator<<(QDBusArgument &argument, const MyTime &mytime)
    {
        argument.beginStructure();
        if (mytime.isValid)
            argument << true << mytime.hour
                     << mytime.minute << mytime.second;
        else
            argument << false;
        argument.endStructure();
        return argument;
    }

この例では、operator<< 関数とoperator>> 関数の両方が、読み取り/書き込みの回数が異なる可能性があります。これはQt D-Bus の型システムを混乱させる恐れがあるため、避けるべきです。

「 QDBusAbstractInterface 」、「Qt D-Bus の型システム」、「アダプタの使用」、および「qdbus_cast()」も参照してください 。

メンバ型のドキュメント

enum QDBusArgument::ElementType

この列挙型は、引数が保持する要素の型を表します。

定数値説明
QDBusArgument::BasicType0QVariant が認識する基本要素。以下の型が基本要素とみなされます:bool、byte、short、ushort、int、uint、qint64、quint64、double、QString 、QByteArray 、QDBusObjectPath 、QDBusSignature
QDBusArgument::VariantType1バリアント要素 (QDBusVariant)
QDBusArgument::ArrayType2配列要素。通常、QList<T>で表されます。注:QByteArray および連想マップは、D-Busプロトコルによって配列として転送される場合でも、配列とは見なされません。
QDBusArgument::StructureType3QDateTime やQPoint などの構造体によって表されるカスタム型。
QDBusArgument::MapType4QMap<Key, Value> やQHash<Key, Value> のような連想コンテナ
QDBusArgument::MapEntryType5連想コンテナ内の 1 つのエントリ:キーと値の両方が 1 つのマップエントリ型を構成します。
QDBusArgument::UnknownType-1型が不明であるか、リストの末尾に達しました。

currentType()も参照してください 。

メンバ関数のドキュメント

QDBusArgument::QDBusArgument()

空の QDBusArgument 引数を生成します。

空の QDBusArgument オブジェクトでは、読み取りも書き込みも行うことはできません。

QDBusArgument::QDBusArgument(const QDBusArgument &other)

other というQDBusArgumentオブジェクトのコピーを作成します。

したがって、この時点以降、両方のオブジェクトは同じ状態を持つことになります。QDBusArgumentは明示的に共有されるため、いずれかのコピーに変更を加えると、もう一方のコピーにも影響が及びます。

[noexcept] QDBusArgument::~QDBusArgument()

このQDBusArgument オブジェクトに関連付けられているリソースを解放します。

QVariant QDBusArgument::asVariant() const

現在の引数をQVariant の形式で返します。基本型はデコードされ、QVariant で返されますが、複合型の場合、この関数はQVariant 内のQDBusArgument オブジェクトを返します。引数のデコード(例えば、その内部でasVariant()を呼び出すなど)は呼び出し側の責任となります。

たとえば、現在の引数が INT32 の場合、この関数はQMetaType::Int 型の引数を持つQVariant を返します。INT32 の配列の場合は、QDBusArgument を含むQVariant を返します。

エラーが発生した場合、またはデコードする引数がもうない場合(つまり、引数リストの末尾に達した場合)、この関数は無効なQVariant を返します。

atEnd()も参照してください 。

bool QDBusArgument::atEnd() const

この `QDBusArgument` から抽出する要素がこれ以上ない場合、true を返します。この関数は通常、`beginMap()` および `beginArray()` から返される `QDBusArgument ` オブジェクト内で使用されます。

void QDBusArgument::beginArray() const

D-Bus 配列を再帰的に処理し、配列要素の抽出を可能にします。

この関数は通常、以下の例のように、operator>> のストリーミング演算子で使用されます。

// Extract a MyArray array of MyElement elements
const QDBusArgument &operator>>(const QDBusArgument &argument, MyArray &myArray)
{
    argument.beginArray();
    myArray.clear();

    while (!argument.atEnd()) {
        MyElement element;
        argument >> element;
        myArray.append(element);
    }

    argument.endArray();
    return argument;
}

デマーシャルしたい型がQList であるか、あるいは1つのテンプレートパラメータを取るQtのコンテナクラスのいずれかである場合、Qt D-Bus がデータのデマーシャル処理を行うための汎用テンプレートを提供しているため、その型に対してoperator>> 関数を宣言する必要はありません。これは、std::list やstd::vector などのSTLのシーケンスコンテナについても同様です。

atEnd()、beginStructure()、およびbeginMap()も参照してください 。

void QDBusArgument::beginArray(QMetaType id)

メタタイプid の要素を追加するのに適した新しいD-Bus配列を開きます。

この関数は通常、operator<< のストリーミング演算子で使用されます。以下の例のようにです:

// Append an array of MyElement types
QDBusArgument &operator<<(QDBusArgument &argument, const MyArray &myArray)
{
    argument.beginArray(qMetaTypeId<MyElement>());
    for (const auto &element : myArray)
        argument << element;
    argument.endArray();
    return argument;
}

マーシャリングしたい型がQList 、あるいはテンプレートパラメータを1つ取るQtのコンテナクラスのいずれかである場合、Qt D-Bus がデータのマーシャリングを行うための汎用テンプレートを提供しているため、その型に対してoperator<< 関数を宣言する必要はありません。これは、std::list やstd::vector などのSTLのシーケンスコンテナについても同様です。

endArray()、beginStructure()、およびbeginMap()も参照してください 。

void QDBusArgument::beginMap() const

D-Busマップを再帰的に探索し、マップの要素を抽出できるようにします。

この関数は通常、operator>> のストリーミング演算子で使用されます。以下の例を参照してください。

// Extract a MyDictionary map that associates integers to MyElement items
const QDBusArgument &operator>>(const QDBusArgument &argument, MyDictionary &myDict)
{
    argument.beginMap();
    myDict.clear();

    while (!argument.atEnd()) {
        int key;
        MyElement value;
        argument.beginMapEntry();
        argument >> key >> value;
        argument.endMapEntry();
        myDict.insert(key, value);
    }

    argument.endMap();
    return argument;
}

デマーシャルしたい型がQMap またはQHash である場合、その型に対してoperator>> 関数を宣言する必要はありません。Qt D-Bus が、データのデマーシャル処理を行うための汎用テンプレートを提供しているからです。

endMap()、beginStructure()、beginArray()、およびbeginMapEntry()も参照してください 。

void QDBusArgument::beginMap(QMetaType keyMetaType, QMetaType valueMetaType)

要素の追加に適した新しい Qt D-Bus マップを開きます。マップは、1 つのエントリ(キー)を別のエントリ(値)に関連付けるコンテナであり、Qt の `QMap ` や `QHash` などがこれに該当します。マップのキーおよび値のメタタイプの ID は、それぞれ `keyMetaType ` および `valueMetaType ` に渡す必要があります。

この関数は通常、次の例のように、operator<< のストリーミング演算子で使用されます。

// Append a dictionary that associates ints to MyValue types
QDBusArgument &operator<<(QDBusArgument &argument, const MyDictionary &myDict)
{
    argument.beginMap(QMetaType::fromType<int>(), QMetaType::fromType<MyValue>());
    MyDictionary::const_iterator i;
    for (i = myDict.cbegin(); i != myDict.cend(); ++i) {
        argument.beginMapEntry();
        argument << i.key() << i.value();
        argument.endMapEntry();
    }
    argument.endMap();
    return argument;
}

QHash や std::map などの連想コンテナについては、通常、operator<< やoperator>> 関数を用意する必要はありません。Qt D-Bus がデータのマーシャリングを行うための汎用テンプレートを提供しているためです。

endMap()、beginStructure()、beginArray()、およびbeginMapEntry()も参照してください 。

void QDBusArgument::beginMapEntry()

キーと値のエントリを追加するのに適した D-Bus マップエントリを開きます。この関数は、beginMap() を使用してマップが開かれている場合にのみ有効です。

この関数の使用例については、beginMap() を参照してください。

endMapEntry() およびbeginMap()も参照してください 。

void QDBusArgument::beginMapEntry() const

D-Busマップエントリを再帰的に探索し、キーと値のペアを抽出できるようにします。

この関数の一般的な使用例については、beginMap() を参照してください。

endMapEntry() およびbeginMap()も参照してください 。

void QDBusArgument::beginStructure()

新しい引数を追加するのに適した新しい D-Bus 構造体を開きます。

この関数は、通常、operator<< のストリーミング演算子で使用されます。以下の例のようにです:

QDBusArgument &operator<<(QDBusArgument &argument, const MyStructure &myStruct)
{
    argument.beginStructure();
    argument << myStruct.member1 << myStruct.member2;
    argument.endStructure();
    return argument;
}

構造体には他の構造体をネストして含めることができるため、以下のコードも有効です:

QDBusArgument &operator<<(QDBusArgument &argument, const MyStructure &myStruct)
{
    argument.beginStructure();
    argument << myStruct.member1 << myStruct.member2;

    argument.beginStructure();
    argument << myStruct.member3.subMember1 << myStruct.member3.subMember2;
    argument.endStructure();

    argument << myStruct.member4;
    argument.endStructure();
    return argument;
}

endStructure()、beginArray()、およびbeginMap()も参照してください 。

void QDBusArgument::beginStructure() const

要素の抽出に適した D-Bus 構造体を開きます。

この関数は通常、以下の例のようにoperator>> のストリーミング演算子で使用されます。

const QDBusArgument &operator>>(const QDBusArgument &argument, MyStructure &myStruct)
{
    argument.beginStructure();
    argument >> myStruct.member1 >> myStruct.member2 >> myStruct.member3;
    argument.endStructure();
    return argument;
}

endStructure()、beginArray()、およびbeginMap()も参照してください 。

QDBusArgument::ElementType QDBusArgument::currentType() const

現在の要素型の分類を返します。型のデコード中にエラーが発生した場合、または引数の末尾に達した場合は、この関数は `QDBusArgument::UnknownType` を返します。

この関数は、引数のデマーシャリング時にのみ意味を持ちます。マーシャリング中に使用された場合、常にUnknownType を返します。

void QDBusArgument::endArray()

beginArray() で開かれた D-Bus 配列を閉じます。この関数は、beginArray() が呼び出された回数と同じ回数だけ呼び出す必要があります。

beginArray()、endStructure()、およびendMap()も参照してください 。

void QDBusArgument::endArray() const

D-Bus配列を閉じ、配列の後に続く要素を取り出せるようにします。

beginArray()も参照してください 。

void QDBusArgument::endMap()

beginMap() で開かれた D-Bus マップを閉じます。この関数は、beginMap() が呼び出された回数と同じ回数だけ呼び出す必要があります。

beginMap()、endStructure()、およびendArray()も参照してください 。

void QDBusArgument::endMap() const

D-Busマップを閉じ、マップの直後の要素を抽出できるようにします。

beginMap()も参照してください 。

void QDBusArgument::endMapEntry()

beginMapEntry() で開かれた D-Bus マップエントリを閉じます。この関数は、beginMapEntry() が呼び出された回数と同じ回数だけ呼び出す必要があります。

beginMapEntry()も参照してください 。

void QDBusArgument::endMapEntry() const

D-Busマップのエントリを閉じ、マップ上の次の要素を取り出せるようにします。

beginMapEntry()も参照してください 。

void QDBusArgument::endStructure()

beginStructure() で開いた D-Bus 構造体を閉じます。この関数は、beginStructure() が呼び出された回数と同じ回数だけ呼び出す必要があります。

beginStructure()、endArray()、およびendMap()も参照してください 。

void QDBusArgument::endStructure() const

D-Bus構造体を閉じ、その構造体の直後の要素を取り出せるようにします。

beginStructure()も参照してください 。

[noexcept] void QDBusArgument::swap(QDBusArgument &other)

この引数をother と入れ替えます。この操作は非常に高速で、失敗することはありません。

QDBusArgument &QDBusArgument::operator<<(uchar arg)

BYTE 型のプリミティブ値 `arg ` を D-Bus ストリームに追加します。

QDBusArgument &QDBusArgument::operator<<(bool arg)

型BOOLEAN のプリミティブ値arg をD-Busストリームに追加します。

これはオーバーロードされた関数です。

QDBusArgument &QDBusArgument::operator<<(const QByteArray &arg)

arg で指定されたQByteArray を、ARRAY of BYTE として D-Bus ストリームに追加します。

QStringList およびQByteArray は、Qt アプリケーションで広く使用されているため、QDBusArgument が直接サポートする唯一の 2 つの非プリミティブ型です。

その他の配列は、Qt D-Bus の複合型を通じてサポートされています。

これはオーバーロードされた関数です。

QDBusArgument &QDBusArgument::operator<<(const QDBusVariant &arg)

VARIANT 型のプリミティブ値 `arg ` を D-Bus ストリームに追加します。

Qt D-Busのバリアント型は、他のバリアント型を含め、任意の型を格納できます。これはQt XMLのQVariant 型に似ています。

これはオーバーロードされた関数です。

QDBusArgument &QDBusArgument::operator<<(const QString &arg)

型STRING (Unicode文字列)のプリミティブ値arg を、D-Busストリームに追加します。

これはオーバーロードされた関数です。

QDBusArgument &QDBusArgument::operator<<(const QStringList &arg)

arg で指定されたQStringList (ARRAY of STRING として)を D-Bus ストリームに追加します。

QStringList およびQByteArray は、Qt アプリケーションで広く使用されているため、QDBusArgument が直接サポートする唯一の 2 つの非プリミティブ型です。

その他の配列は、Qt D-Bus の複合型を通じてサポートされています。

これはオーバーロードされた関数です。

QDBusArgument &QDBusArgument::operator<<(double arg)

型DOUBLE (倍精度浮動小数点)のプリミティブ値arg を、D-Busストリームに追加します。

これはオーバーロードされた関数です。

QDBusArgument &QDBusArgument::operator<<(int arg)

型INT32 のプリミティブ値arg をD-Busストリームに追加します。

これはオーバーロードされた関数です。

QDBusArgument &QDBusArgument::operator<<(qlonglong arg)

型INT64 のプリミティブ値arg をD-Busストリームに追加します。

これはオーバーロードされた関数です。

QDBusArgument &QDBusArgument::operator<<(qulonglong arg)

型UINT64 のプリミティブ値arg をD-Busストリームに追加します。

これはオーバーロードされた関数です。

QDBusArgument &QDBusArgument::operator<<(short arg)

型INT16 のプリミティブ値arg をD-Busストリームに追加します。

これはオーバーロードされた関数です。

QDBusArgument &QDBusArgument::operator<<(uint arg)

型UINT32 のプリミティブ値arg をD-Busストリームに追加します。

これはオーバーロードされた関数です。

QDBusArgument &QDBusArgument::operator<<(ushort arg)

型UINT16 のプリミティブ値arg をD-Busストリームに追加します。

これはオーバーロードされた関数です。

QDBusArgument &QDBusArgument::operator=(const QDBusArgument &other)

other QDBusArgument オブジェクトを、このオブジェクトにコピーします。

したがって、この時点以降、両方のオブジェクトは同じ状態を持つことになります。QDBusArgumentsは明示的に共有されるため、いずれかのコピーに変更を加えると、もう一方にも影響が及びます。

const QDBusArgument &QDBusArgument::operator>>(uchar &arg) const

D-Busストリームから、型がBYTE であるD-Busプリミティブ引数を1つ抽出し、それをarg に格納します。

const QDBusArgument &QDBusArgument::operator>>(QByteArray &arg) const

D-Busストリームからバイト配列を抽出し、QByteArray として返します。

QStringList およびQByteArray は、Qtアプリケーションで広く使用されているため、QDBusArgument によって直接サポートされている2つの非プリミティブ型です。

その他の配列は、Qt D-Bus の複合型を通じてサポートされています。

これはオーバーロードされた関数です。

const QDBusArgument &QDBusArgument::operator>>(QDBusVariant &arg) const

D-Busストリームから、VARIANT 型の D-Bus プリミティブ引数を 1 つ抽出します。

Qt D-Bus バリアント型には、他のバリアント型を含め、あらゆる型を含めることができます。これは Qt XML の `QVariant ` 型に似ています。

バリアントにQDBusArgument が直接サポートしていない型が含まれている場合、返されるQDBusVariant の値には別のQDBusArgument が含まれます。これを別の型にさらにデマーシャルするのは、利用者の責任です。

これはオーバーロードされた関数です。

const QDBusArgument &QDBusArgument::operator>>(QString &arg) const

D-Bus ストリームから、STRING (Unicode 文字列)型の D-Bus プリミティブ引数を 1 つ取得します。

これはオーバーロードされた関数です。

const QDBusArgument &QDBusArgument::operator>>(QStringList &arg) const

D-Busストリームから文字列の配列を抽出し、それをQStringList として返します。

QStringList また、QByteArray は、Qt アプリケーションで広く使用されているため、QDBusArgument が直接サポートする唯一の 2 つの非プリミティブ型です。

その他の配列は、Qt D-Bus の複合型を通じてサポートされています。

これはオーバーロードされた関数です。

const QDBusArgument &QDBusArgument::operator>>(bool &arg) const

D-Bus ストリームから、BOOLEAN 型の D-Bus プリミティブ引数を 1 つ抽出します。

これはオーバーロードされた関数です。

const QDBusArgument &QDBusArgument::operator>>(double &arg) const

D-Bus ストリームから、DOUBLE (倍精度浮動小数点)型の D-Bus プリミティブ引数を 1 つ抽出します。

これはオーバーロードされた関数です。

const QDBusArgument &QDBusArgument::operator>>(int &arg) const

D-Bus ストリームから、INT32 型の D-Bus プリミティブ引数を 1 つ抽出します。

これはオーバーロードされた関数です。

const QDBusArgument &QDBusArgument::operator>>(qlonglong &arg) const

D-Bus ストリームから、INT64 型の D-Bus プリミティブ引数を 1 つ抽出します。

これはオーバーロードされた関数です。

const QDBusArgument &QDBusArgument::operator>>(qulonglong &arg) const

D-Bus ストリームから、UINT64 型の D-Bus プリミティブ引数を 1 つ抽出します。

これはオーバーロードされた関数です。

const QDBusArgument &QDBusArgument::operator>>(short &arg) const

D-Bus ストリームから、INT16 型の D-Bus プリミティブ引数を 1 つ抽出します。

これはオーバーロードされた関数です。

const QDBusArgument &QDBusArgument::operator>>(uint &arg) const

D-Bus ストリームから、UINT32 型の D-Bus プリミティブ引数を 1 つ抽出します。

これはオーバーロードされた関数です。

const QDBusArgument &QDBusArgument::operator>>(ushort &arg) const

D-Bus ストリームから、UINT16 型の D-Bus プリミティブ引数を 1 つ抽出します。

これはオーバーロードされた関数です。

関連する非メンバー

template <typename T> QMetaType qDBusRegisterMetaType()

T がまだ登録されていない場合、Qt D-Bus の型システムおよびQtのmeta-type system にこれを登録します。

型を登録するには、Q_DECLARE_METATYPE() マクロを使用してメタ型として宣言し、次の例のように登録する必要があります。

#include <QDBusMetaType>

qDBusRegisterMetaType<MyClass>();

T がQtのコンテナクラスのいずれでもない場合、T とQDBusArgument の間にoperator<< およびoperator>> のストリーミング演算子がすでに宣言されている必要があります。このような型の宣言方法の詳細については、「Qt D-Bus 型システム」のページを参照してください。

この関数は、その型の Qt メタ型 ID を返します(qRegisterMetaType() から返される値と同じです)。

注: ストリーム可能な型(QList 、QHash 、QMap などのコンテナを含む)を継承するT が、カスタムoperator<< およびoperator>> を指定せずにストリーム処理できるという機能は 、Qt 5.7 以降では非推奨となっています。これは、T 内の基底クラス以外のすべてを無視してしまうためです。 診断メッセージは表示されません。ストリーム処理を行うすべての型に対して、常にこれらの演算子を定義し、基底クラス用の Qt が提供するストリーム演算子に依存しないようにしてください。

注: この関数はスレッドセーフです。

関連項目: Qt D-Bus の型システム、qRegisterMetaType()、およびQMetaType 。

template <typename T> T qdbus_cast(const QDBusArgument &arg)

arg の内容を、型T に変換しようとします。例:

MyType item = qdbus_cast<Type>(argument);

これは、以下と同等であることに注意してください:

MyType item;
argument >> item;

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.