En esta página

Los cambios introducidos en Qt Bluetooth

Qt 6 son el resultado del esfuerzo consciente por hacer el framework más eficiente y fácil de usar.

Intentamos mantener la compatibilidad binaria y de código fuente de todas las API públicas en cada versión. Pero algunos cambios eran inevitables en un esfuerzo por hacer de Qt un framework mejor.

En este tema resumimos esos cambios en QtBluetooth, y proporcionamos una guía para manejarlos.

General

  • qbluetoothglobal.h ha sido eliminado. qtbluetoothglobal.h es la cabecera oficial con el mismo propósito.
  • Todos los usos de QVector han sido sustituidos por QList.
  • Se ha eliminado el backend Win32. No habrá un backend Bluetooth que funcione cuando Qt se construya con mingw.
  • Dado que ahora sólo hay un backend Windows, se ha eliminado la categoría de registro qt.bluetooth.winrt. Los mensajes de registro correspondientes están ahora en qt.bluetooth.windows.

Espacio de nombres QBluetooth

Los enums QBluetooth::Security y QBluetooth::AttAccessConstraint han sido cambiados a enums scoped para mejorar la seguridad de tipos.

QBluetoothDeviceDiscoveryAgent

Se ha eliminado la propiedad QBluetoothDeviceDiscoveryAgent::inquiryType y el setter/getter & enum relacionado. El elemento API nunca fue implementado y/o soportado.

QBluetoothDeviceInfo

  • manufacturerData() devuelve un QMultiHash en lugar de QHash. Desde Qt 6 QMultiHash ya no se deriva de QHash.
  • DataCompleteness se ha eliminado sin sustituirla, ya que los elementos API relacionados ya no servían para nada.
  • setServiceUuids(const QList<QBluetoothUuid>, DataCompleteness) ha sido sustituido por setServiceUuids(const QList<QBluetoothUuid> &uuids)
  • DataCompleteness serviceUuidsCompleteness() const fue eliminado sin reemplazo.
  • QList<QBluetoothUuid> serviceUuids(DataCompleteness *completeness = nullptr) const fue sustituida por QList<QBluetoothUuid> serviceUuids() const.

QBluetoothLocalDevice

La API relacionada con el agente de emparejamiento se eliminó sin reemplazo. Esto incluye pairingConfirmation(bool), pairingDisplayPinCode(..) & pairingDisplayConfirmation(..). Excepto para Android y BlueZ 4 nunca hubo una implementación para ello. El soporte para Bluez 4 fue eliminado en Qt 6 y la implementación de Android requería BLUETOOTH_PRIVILEGED inalcanzable para al menos partes del código.

QLowEnergyService

Renombrados los valores del enum ServiceState:

Este cambio se produce en previsión de que el descubrimiento de servicios pueda convertirse en un paso opcional en el futuro.

QBluetoothUuid

Los enums ProtocolUuid, ServiceClassUuid, CharacteristicType, y DescriptorType son ahora enums de ámbito. El uso de elementos enum debe adaptarse en el código de usuario.

QLowEnergyController

  • Se han eliminado las funciones ctors y create*() existentes con parámetros remotos QBluetoothAddress. QBluetoothAddress no es suficiente para indicar dispositivos remotos en sistemas Apple. Requiere UUIDs para "nombrar" dispositivos. Esto sólo puede satisfacerse mediante QBluetoothDeviceInfo.
  • Los restantes QLowEnergyController ctores se han hecho privados. Las funciones createPeripheral() y createCentral() deben utilizarse para obtener instancias de QLowEnergyController.

QCaracterísticaDeBajaEnergía

  • Se ha introducido el nuevo método clientCharacteristicConfiguration() para obtener cómodamente el descriptor de configuración de la característica del cliente.
  • Se han introducido las constantes CCCDDisable, CCCDEnableNotification, y CCCDEnableIndication que contienen los posibles valores del Descriptor de configuración de la característica del cliente.
  • El método handle() ya no forma parte de las interfaces públicas Bluetooth LE. Se ha sustituido su función como identificador de características. Las propias instancias QLowEnergyCharacteristic sirven como identificador.

QLowEnergyDescriptor

El método handle() ya no forma parte de las interfaces públicas Bluetooth LE. Se ha sustituido su función como identificador de descriptores. La propia instancia QLowEnergyDescriptor sirve como identificador.

QBluetoothTransferManager

QBluetoothTransferManager, QBluetoothTransferRequest y QBluetoothTransferReply han sido eliminados sin reemplazo.

QBluetoothSocket

QBluetoothSocket::SocketState y QBluetoothSocket::SocketError son ahora enums. El uso de elementos enum debe adaptarse en el código de usuario.

Interfaz QML

Se ha eliminado la interfaz QML porque la programación de sockets a través de QML no es aconsejable. QDeclarativeBluetoothService, QDeclarativeBluetoothSocket y QDeclarativeBluetoothDiscoveryModel (en QML: BluetoothService, BluetoothSocket y BluetoothDiscoveryModel) se han eliminado sin sustituirlos.

"Señales de "error

Las señales "error" en QBluetoothDeviceDiscoveryAgent, QBluetoothLocalDevice, QBluetoothServer, QBluetoothServiceDiscoveryAgent, QBluetoothSocket, QLowEnergyController, y QLowEnergyService se han renombrado a "errorOccurred" para eliminar ambigüedades entre la señal "error" y el 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.