Modifications apportées à Qt Bluetooth
Qt 6 résultent d’un effort délibéré visant à rendre le framework plus efficace et plus facile à utiliser.
Nous nous efforçons de maintenir la compatibilité binaire et source pour toutes les API publiques à chaque version. Cependant, certaines modifications étaient inévitables afin d’améliorer le framework Qt.
Dans cette rubrique, nous résumons ces modifications dans QtBluetooth et fournissons des conseils pour les prendre en compte.
Généralités
- Le fichier `qbluetoothglobal.h` a été supprimé. Le fichier `qtbluetoothglobal.h` est l'en-tête officiel remplissant la même fonction.
- Toutes les occurrences de ` QVector ` ont été remplacées par ` QList`.
- Le backend Win32 a été supprimé. Il n’y aura plus de backend Bluetooth fonctionnel lorsque Qt sera compilé avec mingw.
- Comme il n'existe désormais plus qu'un seul backend Windows, la catégorie de journalisation qt.bluetooth.winrt a été supprimée. Les messages de journalisation correspondants se trouvent désormais dans qt.bluetooth.windows.
Espace de noms QBluetooth
Les énumérations ` QBluetooth::Security ` et ` QBluetooth::AttAccessConstraint ` ont été remplacées par des énumérations à portée limitée afin d’améliorer la sécurité des types.
QBluetoothDeviceDiscoveryAgent
La propriété QBluetoothDeviceDiscoveryAgent::inquiryType ainsi que les accesseurs et l'énumération associés ont été supprimés. Cet élément de l'API n'a jamais été implémenté ni pris en charge.
QBluetoothDeviceInfo
- La méthode `manufacturerData()` renvoie désormais une instance de ` QMultiHash ` au lieu de ` QHash`. Depuis Qt 6, ` QMultiHash ` n’est plus dérivé de ` QHash`.
- DataCompleteness a été supprimé sans être remplacé, car les éléments d’API associés n’avaient plus d’utilité
- setServiceUuids(const QList<QBluetoothUuid>, DataCompleteness) a été remplacé par setServiceUuids(const QList<QBluetoothUuid> &uuids)
- La fonction DataCompleteness serviceUuidsCompleteness() const a été supprimée sans être remplacée.
- QList<QBluetoothUuid> serviceUuids(DataCompleteness *completeness = nullptr) const a été remplacée par QList<QBluetoothUuid> serviceUuids() const.
QBluetoothLocalDevice
L'API liée à l'agent de couplage a été supprimée sans remplacement. Cela inclut pairingConfirmation(bool), pairingDisplayPinCode(..) et pairingDisplayConfirmation(..). À l'exception d'Android et de BlueZ 4, il n'y a jamais eu d'implémentation pour cette API. La prise en charge de BlueZ 4 a été supprimée dans Qt 6 et l’implémentation Android nécessitait le droit BLUETOOTH_PRIVILEGED, impossible à obtenir, pour au moins certaines parties du code.
QLowEnergyService
Renommage des valeurs de l'énumération ServiceState :
- DiscoveryRequired devient RemoteService
- DiscoveringService devient RemoteServiceDiscovering
- ServiceDiscovered devient RemoteServiceDiscovered
Ce changement est effectué en prévision du fait que la découverte de services pourrait devenir une étape facultative à l'avenir.
QBluetoothUuid
Les énumérations ProtocolUuid, ServiceClassUuid, CharacteristicType et DescriptorType sont désormais des énumérations à portée limitée. L’utilisation des éléments de ces énumérations doit être adaptée dans le code utilisateur.
QLowEnergyController
- Les constructeurs existants et les fonctions create*() utilisant des paramètres « remote » de type QBluetoothAddress ont été supprimés. Le type QBluetoothAddress ne suffit pas pour désigner des périphériques distants sur les systèmes Apple. Ceux-ci nécessitent des UUID pour « nommer » les périphériques. Seul le type QBluetoothDeviceInfo permet de répondre à cette exigence.
- Les constructeurs d’ QLowEnergyController restants ont été déclarés privés. Il convient d’utiliser les fonctions createPeripheral() et createCentral() pour obtenir des instances de QLowEnergyController.
QLowEnergyCharacteristic
- La nouvelle méthode clientCharacteristicConfiguration() a été introduite pour permettre d’obtenir facilement le descripteur de configuration des caractéristiques client.
- Les constantes CCCDDisable, CCCDEnableNotification et CCCDEnableIndication ont été introduites ; elles contiennent les valeurs possibles pour le descripteur de configuration des caractéristiques client.
- La méthode `handle()` ne fait plus partie des interfaces Bluetooth LE publiques. Son rôle d’identifiant pour les caractéristiques a été remplacé. Les instances ` QLowEnergyCharacteristic ` servent elles-mêmes d’identifiant.
QLowEnergyDescriptor
La méthode `handle()` ne fait plus partie des interfaces publiques Bluetooth LE. Son rôle d’identifiant des caractéristiques a été remplacé. Les instances ` QLowEnergyDescriptor ` servent elles-mêmes 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 énumérations. L’utilisation des éléments de ces énumérations doit être adaptée dans le code utilisateur.
Interface QML
L'interface QML a été supprimée, car la programmation de sockets via QML n'est pas recommandée. QDeclarativeBluetoothService, QDeclarativeBluetoothSocket et QDeclarativeBluetoothDiscoveryModel (en QML : BluetoothService, BluetoothSocket et BluetoothDiscoveryModel) ont été supprimés sans remplacement.
Signaux « error »
Les signaux « error » dans QBluetoothDeviceDiscoveryAgent, QBluetoothLocalDevice, QBluetoothServer, QBluetoothServiceDiscoveryAgent, QBluetoothSocket, QLowEnergyController et QLowEnergyService ont été renommés « errorOccurred » afin de lever toute ambiguïté 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.