このページでは

QDBusMessage Class

QDBusMessage クラスは、D-Bus バスを介して送受信される 1 つのメッセージを表します。詳細...

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

パブリック型

enum MessageType { MethodCallMessage, SignalMessage, ReplyMessage, ErrorMessage, InvalidMessage }

パブリック関数

QDBusMessage()
QDBusMessage(const QDBusMessage &other)
(since 6.11) QDBusMessage(QDBusMessage &&other)
~QDBusMessage()
QList<QVariant> arguments() const
bool autoStartService() const
QDBusMessage createErrorReply(const QDBusError &error) const
QDBusMessage createErrorReply(QDBusError::ErrorType type, const QString &msg) const
QDBusMessage createErrorReply(const QString &name, const QString &msg) const
QDBusMessage createReply(const QList<QVariant> &arguments = QList<QVariant>()) const
QDBusMessage createReply(const QVariant &argument) const
QString errorMessage() const
QString errorName() const
QString interface() const
bool isDelayedReply() const
bool isInteractiveAuthorizationAllowed() const
bool isReplyRequired() const
QString member() const
QString path() const
QString service() const
void setArguments(const QList<QVariant> &arguments)
void setAutoStartService(bool enable)
void setDelayedReply(bool enable) const
void setInteractiveAuthorizationAllowed(bool enable)
QString signature() const
void swap(QDBusMessage &other)
QDBusMessage::MessageType type() const
QDBusMessage &operator<<(const QVariant &arg)
QDBusMessage &operator=(QDBusMessage &&other)
QDBusMessage &operator=(const QDBusMessage &other)

静的パブリックメンバー

QDBusMessage createError(const QDBusError &error)
QDBusMessage createError(QDBusError::ErrorType type, const QString &msg)
QDBusMessage createError(const QString &name, const QString &msg)
QDBusMessage createMethodCall(const QString &service, const QString &path, const QString &interface, const QString &method)
QDBusMessage createSignal(const QString &path, const QString &interface, const QString &name)
QDBusMessage createTargetedSignal(const QString &service, const QString &path, const QString &interface, const QString &name)

詳細な説明

このオブジェクトは、バス上で発生し得る 4 種類のメッセージ(MessageType )のいずれかを表すことができます:

  • メソッド呼び出し
  • メソッドの戻り値
  • シグナルの発火
  • エラーコード

この型のオブジェクトは、静的関数createError()、createMethodCall()、およびcreateSignal()を使用して作成されます。メッセージの送信には、QDBusConnection::send()関数を使用します。

メンバ型のドキュメント

enum QDBusMessage::MessageType

利用可能なメッセージの種類:

定数値説明
QDBusMessage::MethodCallMessage1送信または受信のメソッド呼び出しを表すメッセージ
QDBusMessage::SignalMessage4送信または受信のシグナル発振を表すメッセージ
QDBusMessage::ReplyMessage2メソッド呼び出しの戻り値を表すメッセージ
QDBusMessage::ErrorMessage3メソッド呼び出しに対する応答として発生したエラー状態を表すメッセージ
QDBusMessage::InvalidMessage0無効なメッセージ:D-Bus から受信したメッセージに対しては、これが設定されることは決してありません

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

QDBusMessage::QDBusMessage()

空で無効な QDBusMessage オブジェクトを生成します。

createError()、createMethodCall()、およびcreateSignal()も参照してください 。

QDBusMessage::QDBusMessage(const QDBusMessage &other)

other で指定されたオブジェクトのコピーを作成します。

注:QDBusMessage オブジェクトは共有されます。コピーに対して行った変更は、元のオブジェクトにも反映されます。詳細については、setDelayedReply() を参照してください。

[noexcept, since 6.11] QDBusMessage::QDBusMessage(QDBusMessage &&other)

other をこのオブジェクトに移動します。

注: 移動元のオブジェクト other は 、部分的に形成された状態となり、この状態では破棄と新しい値への代入のみが有効な操作となります。

この関数は Qt 6.11 で導入されました。

[noexcept] QDBusMessage::~QDBusMessage()

オブジェクトを破棄し、保持されていたリソースをすべて解放します。

QList<QVariant> QDBusMessage::arguments() const

D-Bus から送信される、または受信された引数のリストを返します。

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

bool QDBusMessage::autoStartService() const

setAutoStartService() で設定された自動起動フラグを返します。デフォルトでは、このフラグは true になっており、これは、Qt D-Bus が、サービスがまだ実行されていない場合に、そのサービスを自動的に起動することを意味します。

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

[static] QDBusMessage QDBusMessage::createError(const QDBusError &error)

指定されたerror を表す新しいDBusメッセージを作成します。

[static] QDBusMessage QDBusMessage::createError(QDBusError::ErrorType type, const QString &msg)

エラータイプ「type 」に対して、メッセージ「msg 」を用いて新しいDBusメッセージを生成します。生成されたDBusメッセージを返します。

[static] QDBusMessage QDBusMessage::createError(const QString &name, const QString &msg)

指定されたname およびmsg を用いて、エラーを表す新しいDBusメッセージを作成します。

QDBusMessage QDBusMessage::createErrorReply(const QDBusError &error) const

指定されたerror オブジェクトから、エラー応答メッセージを表す新しいDBusメッセージを作成します。

QDBusMessage QDBusMessage::createErrorReply(QDBusError::ErrorType type, const QString &msg) const

エラータイプ「type 」に対して、メッセージ「msg 」を用いて新しいDBus応答メッセージを作成します。作成されたDBusメッセージを返します。

QDBusMessage QDBusMessage::createErrorReply(const QString &name, const QString &msg) const

指定されたname およびmsg を用いて、エラー応答メッセージを表す新しいDBusメッセージを作成します。

[static] QDBusMessage QDBusMessage::createMethodCall(const QString &service, const QString &path, const QString &interface, const QString &method)

メソッド呼び出しを表す新しいDBusメッセージを構築します。メソッド呼び出しでは、常にその宛先アドレス(service 、path 、interface 、およびmethod )が指定されます。

DBusバスでは、メソッド名が一意である場合、宛先インターフェースを指定せずに、指定されたリモートオブジェクトのメソッドを呼び出すことができます。ただし、リモートオブジェクト上の2つのインターフェースが同じメソッド名をエクスポートしている場合、結果は未定義となります(2つのうちいずれかが呼び出されるか、エラーが返される可能性があります)。

ピアツーピアのコンテキスト(つまり、バス上ではない)で DBus を使用する場合、service パラメータは省略可能です。

QDBusInterface クラスは、同期メソッド呼び出しに対するよりシンプルな抽象化を提供します。

この関数は、QDBusConnection::call() とともに送信できるQDBusMessage オブジェクトを返します。

QDBusMessage QDBusMessage::createReply(const QList<QVariant> &arguments = QList<QVariant>()) const

指定されたarguments を用いて、応答を表す新しいDBusメッセージを作成します。

QDBusMessage QDBusMessage::createReply(const QVariant &argument) const

指定されたargument を使用して、応答を表す新しいDBusメッセージを作成します。

[static] QDBusMessage QDBusMessage::createSignal(const QString &path, const QString &interface, const QString &name)

指定されたpath 、interface 、およびname を用いて、シグナルの発信を表す新しいDBusメッセージを作成します。

DBusシグナルは、あるアプリケーションから発信され、そのインターフェースからそのシグナルをリッスンしているすべてのアプリケーションによって受信されます。

返されるQDBusMessage オブジェクトは、QDBusConnection::send()関数を使用して送信できます。

[static] QDBusMessage QDBusMessage::createTargetedSignal(const QString &service, const QString &path, const QString &interface, const QString &name)

指定されたpath 、interface 、およびname を用いて、特定の宛先へのシグナル送信を表す新しいDBusメッセージを生成します。

DBus シグナルは 1 つのアプリケーションから発信され、その宛先service 名を所有するアプリケーションのみが受信します。

返されたQDBusMessage オブジェクトは、QDBusConnection::send()関数を使用して送信できます。

QString QDBusMessage::errorMessage() const

受信したエラーに関連付けられた、人間が読みやすいメッセージを返します。

QString QDBusMessage::errorName() const

受け取ったエラーの名前を返します。

QString QDBusMessage::interface() const

呼び出されているメソッド(メソッド呼び出しの場合)または受信しているシグナルのインターフェースを返します。

bool QDBusMessage::isDelayedReply() const

setDelayedReply() によって設定された遅延返信フラグを返します。デフォルトでは、このフラグは false であり、これはQt D-Bus が必要に応じて自動返信を生成することを意味します。

bool QDBusMessage::isInteractiveAuthorizationAllowed() const

メッセージにALLOW_INTERACTIVE_AUTHORIZATION フラグが設定されているかどうかを返します。

setInteractiveAuthorizationAllowed() およびQDBusAbstractInterface::isInteractiveAuthorizationAllowed()も参照してください 。

bool QDBusMessage::isReplyRequired() const

このメッセージに対して返信が必要かどうかを示すフラグを返します。これはmethod call messages に対してのみ意味を持ちます。その他の種類のメッセージには返信機能がないため、この関数はそれらに対しては常にfalseを返します。

QString QDBusMessage::member() const

発行されたシグナルの名前、または呼び出されたメソッドの名前を返します。

QString QDBusMessage::path() const

このメッセージが送信されているオブジェクト(メソッド呼び出しの場合)または受信されているオブジェクト(シグナルの場合)のパスを返します。

QString QDBusMessage::service() const

サービスの名前、またはリモートメソッド呼び出しのバスアドレスを返します。

void QDBusMessage::setArguments(const QList<QVariant> &arguments)

D-Busを介してarguments に送信される引数を設定します。これらは、メソッド呼び出しの引数、またはシグナルのパラメータとなります。

なお、arguments では、QVariant の値が無効なQVariantMap は許可されません。

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

void QDBusMessage::setAutoStartService(bool enable)

自動起動フラグをenable に設定します。このフラグはメソッド呼び出しメッセージにおいてのみ意味を持ち、D-Busサーバーに対して、そのサービス名に対応するサービスを自動起動するか、または自動起動しないかを指示します。

デフォルトでは、このフラグは true であり、つまりサービスは自動起動されます。これは、以下のことを意味します。

このメソッド呼び出しが送信されるサービスがすでに実行中の場合、そのサービスに対してメソッド呼び出しが送信されます。 サービスがまだ実行されていない場合、D-Busデーモンに対し、このサービス名に割り当てられたサービスを自動起動するよう要求されます。これは、D-Busサーバーが認識するディレクトリに配置された.serviceファイルによって処理されます。これらのファイルには、それぞれサービス名と、そのサービス名が要求された際に実行されるべきプログラムへのパスが含まれています。

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

void QDBusMessage::setDelayedReply(bool enable) const

メッセージに対して後で返信を行うか(enable がtrueの場合)、Qt D-Bus によって自動返信を生成するか(enable がfalseの場合)を設定します。

D-Bus では、呼び出し側が明示的に別段の指定をしない限り、すべてのメソッド呼び出しは呼び出し側への応答を生成する必要があります(isReplyRequired(() を参照)。QtDBus は、呼び出されたスロットに対して自動的にそのような応答を生成しますが、スロット側が、関数の処理終了後に後で応答を送信する責任を負うかどうかを指定することも可能です。

isDelayedReply() および「遅延応答」も参照してください 。

void QDBusMessage::setInteractiveAuthorizationAllowed(bool enable)

メッセージ内のALLOW_INTERACTIVE_AUTHORIZATION フラグを有効または無効にします。

このフラグは、メソッド呼び出しメッセージ(QDBusMessage::MethodCallMessage )でのみ意味を持ちます。enable がtrue に設定されている場合、このフラグは、メソッドの呼び出し元が、実際のメソッド処理が行われる前に(例えばPolkitを介して)対話型認証が行われるのを待機する準備ができていることを、呼び出し先に示します。

enable がfalse に設定されている場合、このフラグは設定されません。これは、相手側が認証に関する決定を非対話的にかつ速やかに行うことが期待されていることを意味します。これがデフォルトの設定です。

org.freedesktop.DBus.Error.InteractiveAuthorizationRequired エラーは、認証に失敗したことを示しますが、このフラグが設定されていれば成功していた可能性があります。

isInteractiveAuthorizationAllowed() およびQDBusAbstractInterface::setInteractiveAuthorizationAllowed()も参照してください 。

QString QDBusMessage::signature() const

受信したシグナルのシグネチャ、またはメソッド呼び出しの出力引数を返します。

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

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

QDBusMessage::MessageType QDBusMessage::type() const

メッセージのタイプを返します。

QDBusMessage &QDBusMessage::operator<<(const QVariant &arg)

メソッド呼び出しまたはシグナル発信において、D-Bus 経由で送信される引数のリストに、引数 `arg ` を追加します。

[noexcept] QDBusMessage &QDBusMessage::operator=(QDBusMessage &&other)

other をこのオブジェクトに移動・代入します。

注: 移動元のオブジェクト other は 、部分的に形成された状態になります。この状態では、有効な操作は破棄と新しい値への代入のみです。

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

other で指定されたオブジェクトの内容をコピーします。

注: `QDBusMessage ` オブジェクトは共有されます。コピーに対して行った変更は、元のオブジェクトにも反映されます。詳細については、setDelayedReply() を参照してください。

© 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.