Changes to Qt D-Bus#

Minimal porting effort to be able to switch to Qt 6.

Qt 6 is a result of the conscious effort to make the framework more efficient and easy to use.

We try to maintain binary and source compatibility for all the public APIs in each release. But some changes were inevitable in an effort to make Qt a better framework.

In this topic we summarize those changes in Qt DBus, and provide guidance to handle them.

API changes#

The QtDBus module has undergone some basic consolidation and cleanup. There should be minimal porting effort to be able to switch to Qt6.

The QDBusMessage class#

The QDBusMessage::call() and QDBusMessage::asyncCall() methods with a fixed size of arguments have been removed in Qt6.

The QDBusArgument class#

The QDBusArgument::operator<<() specializations for QHash, QMap and QList have been unified into common specializations for associative containers.

The QDBusConnection class#

The QDBusConnection::sender() function has been removed in Qt6.

The QDBusMessage class#

The createErrorReply() function now takes the QString name argument by const reference instead of taking by value.

The QDBusPendingReply class#

QDBusPendingReply has been changed to be a variadic template class in order to support more than 8 template parameters now. The template parameters are the types that will be used to extract the contents of the reply’s data.