Sur cette page

Les changements apportés à Qt Bluetooth

Qt 6 est le résultat d'un effort conscient pour rendre le cadre plus efficace et plus facile à utiliser.

Nous essayons de maintenir la compatibilité binaire et source pour toutes les API publiques dans chaque version. Mais certains changements étaient inévitables dans un effort pour faire de Qt un meilleur framework.

Dans cette rubrique, nous résumons ces changements dans QtBluetooth, et fournissons des conseils pour les gérer.

Généralités

  • qbluetoothglobal.h a été supprimé. qtbluetoothglobal.h est l'en-tête officiel avec le même objectif.
  • Toutes les utilisations de QVector ont été remplacées par QList.
  • Le backend Win32 a été supprimé. Il n'y aura pas de backend Bluetooth fonctionnel lorsque Qt sera construit avec mingw.
  • Puisqu'il n'y a plus qu'un seul backend Windows, la catégorie de journalisation qt.bluetooth.winrt a été supprimée. Les messages de logs correspondants sont maintenant dans qt.bluetooth.windows.

Espace de noms QBluetooth

Les enums QBluetooth::Security et QBluetooth::AttAccessConstraint ont été changés en enums scopés pour améliorer la sécurité des types.

QBluetoothDeviceDiscoveryAgent

La propriété QBluetoothDeviceDiscoveryAgent::inquiryType et les setter/getter & enum associés ont été supprimés. L'élément API n'a jamais été implémenté et/ou supporté.

QBluetoothDeviceInfo

  • manufacturerData() renvoie un QMultiHash plutôt qu'un QHash. Depuis Qt 6, QMultiHash n'est plus dérivé de QHash.
  • DataCompleteness a été supprimé sans remplacement car les éléments API associés n'avaient plus de raison d'être.
  • setServiceUuids(const QList<QBluetoothUuid>, DataCompleteness) a été remplacé par setServiceUuids(const QList<QBluetoothUuid> &uuids)
  • DataCompleteness serviceUuidsCompleteness() const a été supprimé sans remplacement.
  • QList<QBluetoothUuid> serviceUuids(DataCompleteness *completeness = nullptr) const a été remplacé par QList<QBluetoothUuid> serviceUuids() const.

QBluetoothLocalDevice

L'API relative à l'agent d'appairage a été supprimée sans être remplacée. Cela inclut pairingConfirmation(bool), pairingDisplayPinCode(..) & pairingDisplayConfirmation(..). Sauf pour Android et BlueZ 4, il n'y a jamais eu d'implémentation pour cela. Le support de Bluez 4 a été supprimé dans Qt 6 et l'implémentation d'Android nécessitait un BLUETOOTH_PRIVILEGED inaccessible pour au moins une partie du code.

QLowEnergyService

Renommé les valeurs de l'enum ServiceState :

Ce changement intervient en prévision du fait que la découverte de services pourrait devenir une étape facultative à l'avenir.

QBluetoothUuid

Les enums ProtocolUuid, ServiceClassUuid, CharacteristicType, et DescriptorType sont désormais des enums à portée limitée. L'utilisation des éléments de l'énumération doit être adaptée dans le code de l'utilisateur.

Contrôleur QLowEnergy

  • Les fonctions ctors et create*() existantes avec des paramètres QBluetoothAddress distants ont été supprimées. QBluetoothAddress n'est pas suffisant pour indiquer les dispositifs distants sur les systèmes Apple. Il faut des UUID pour "nommer" les appareils. Cette exigence ne peut être satisfaite que par QBluetoothDeviceInfo.
  • Les cteurs QLowEnergyController restants ont été rendus privés. Les fonctions createPeripheral() et createCentral() doivent être utilisées pour obtenir les instances QLowEnergyController.

QLowEnergyCharacteristic

  • La nouvelle méthode clientCharacteristicConfiguration() a été introduite pour obtenir de manière pratique le descripteur de configuration de la caractéristique du client.
  • Les constantes CCCDDisable, CCCDEnableNotification, et CCCDEnableIndication ont été introduites et contiennent les valeurs possibles du descripteur de configuration de la caractéristique du client.
  • La méthode handle() ne fait plus partie des interfaces publiques Bluetooth LE. Sa fonction d'identifiant des caractéristiques a été remplacée. Les instances QLowEnergyCharacteristic servent elles-mêmes d'identifiant.

QLowEnergyDescriptor

La méthode handle() ne fait plus partie des interfaces publiques Bluetooth LE. Sa fonction d'identifiant des descripteurs a été remplacée. L'instance QLowEnergyDescriptor elle-même sert d'identifiant.

QBluetoothTransferManager

QBluetoothTransferManager, QBluetoothTransferRequest et QBluetoothTransferReply ont été supprimés sans être remplacés.

QBluetoothSocket

QBluetoothSocket::SocketState et QBluetoothSocket::SocketError sont désormais des enums cadrés. L'utilisation des éléments de l'enum doit être adaptée dans le code de l'utilisateur.

Interface QML

L'interface QML a été supprimée car la programmation des sockets via QML n'est pas conseillée. QDeclarativeBluetoothService, QDeclarativeBluetoothSocket, et QDeclarativeBluetoothDiscoveryModel (en QML : BluetoothService, BluetoothSocket, et BluetoothDiscoveryModel) ont été supprimés sans être remplacés.

"Signaux "error

Les signaux "error" dans QBluetoothDeviceDiscoveryAgent, QBluetoothLocalDevice, QBluetoothServer, QBluetoothServiceDiscoveryAgent, QBluetoothSocket, QLowEnergyController, et QLowEnergyService ont été renommés en "errorOccurred" pour supprimer les ambiguïtés entre le signal "error" et le getter "error".

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