変更点Qt Bluetooth
Qt 6 における変更点は、フレームワークをより効率的で使いやすくするための意図的な取り組みの結果です。
各リリースにおいて、すべての公開 API についてバイナリおよびソースの互換性を維持するよう努めています。しかし、Qt をより優れたフレームワークにするための取り組みにおいて、一部の変更は避けられませんでした。
このトピックでは、QtBluetooth におけるそれらの変更点をまとめ、それらに対処するためのガイダンスを提供します。
全般
- qbluetoothglobal.h は削除されました。qtbluetoothglobal.h は、同じ目的を持つ公式のヘッダーです。
- QVector のすべての使用箇所は、QList に置き換えられました。
- Win32 バックエンドが削除されました。mingw で Qt をビルドした場合、動作する Bluetooth バックエンドは存在しなくなります。
- Windows バックエンドは 1 つだけとなったため、ロギングカテゴリ qt.bluetooth.winrt は削除されました。対応するログメッセージは、qt.bluetooth.windows に移動しました。
QBluetooth 名前空間
型安全性を向上させるため、列挙型 `QBluetooth::Security ` および `QBluetooth::AttAccessConstraint ` はスコープ付き列挙型に変更されました。
QBluetoothDeviceDiscoveryAgent
QBluetoothDeviceDiscoveryAgent::inquiryType プロパティおよび関連するセッター/ゲッターと列挙型は削除されました。この API 要素は実装もサポートもされていませんでした。
QBluetoothDeviceInfo
- manufacturerData() は、QHash ではなくQMultiHash を返します。Qt 6 以降、QMultiHash はQHash を継承しなくなりました。
- DataCompletenessは、関連するAPI要素がもはや目的を果たさなくなったため、代替なしで削除されました
- setServiceUuids(constQList<QBluetoothUuid>, DataCompleteness) は、setServiceUuids(constQList<QBluetoothUuid> &uuids) に置き換えられました。
- DataCompleteness serviceUuidsCompleteness() const は、後継機能なしに削除されました。
- QList<QBluetoothUuid> serviceUuids(DataCompleteness *completeness = nullptr) const は、QList<QBluetoothUuid> serviceUuids() const に置き換えられました。
QBluetoothLocalDevice
ペアリングエージェント関連の API は、代替機能なしに削除されました。これには、pairingConfirmation(bool)、pairingDisplayPinCode(..)、および pairingDisplayConfirmation(..) が含まれます。Android および BlueZ 4 を除き、これに対する実装はこれまで一度もありませんでした。 Qt 6 では BlueZ 4 のサポートが削除され、Android の実装では、コードの少なくとも一部において、取得不可能な BLUETOOTH_PRIVILEGED が必要とされていました。
QLowEnergyService
ServiceState列挙型の値が次のように名称変更されました:
- DiscoveryRequired がRemoteService
- DiscoveringService 次の通り変更RemoteServiceDiscovering
- ServiceDiscovered 次のようになりますRemoteServiceDiscovered
この変更は、将来的にサービス検出がオプションの手順となる可能性を見越して行われます。
QBluetoothUuid
列挙型ProtocolUuid 、ServiceClassUuid 、CharacteristicType 、およびDescriptorType は、スコープ付き列挙型になりました。ユーザーコードでは、列挙項目の使用方法を適宜変更する必要があります。
QLowEnergyController
- リモートQBluetoothAddress パラメータを持つ既存のコンストラクタおよびcreate*()関数は削除されました。Appleシステムでは、QBluetoothAddress だけではリモートデバイスを指定するには不十分です。デバイスに「名前」を付けるにはUUIDが必要です。これはQBluetoothDeviceInfo によってのみ満たされます。
- 残りのQLowEnergyController コンストラクタはprivateに変更されました。QLowEnergyController インスタンスを取得するには、createPeripheral()およびcreateCentral()関数を使用してください。
QLowEnergyCharacteristic
- クライアント特性構成記述子を簡単に取得できるように、新しいメソッド clientCharacteristicConfiguration() が導入されました。
- クライアント特性構成記述子の取り得る値を保持する定数CCCDDisable 、CCCDEnableNotification 、およびCCCDEnableIndication が導入されました。
- handle() メソッドは、Bluetooth LE の公開インターフェースから削除されました。特性の識別子としてのその役割は、別のものに置き換えられました。QLowEnergyCharacteristic のインスタンス自体が識別子として機能します。
QLowEnergyDescriptor
handle() メソッドは、Bluetooth LE のパブリックインターフェースから削除されました。デскриプタの識別子としての役割は置き換えられました。QLowEnergyDescriptor のインスタンス自体が識別子として機能します。
QBluetoothTransferManager
QBluetoothTransferManager、QBluetoothTransferRequest、およびQBluetoothTransferReplyは、代替クラスなしに削除されました。
QBluetoothSocket
QBluetoothSocket::SocketState およびQBluetoothSocket::SocketError は、スコープ付き列挙型となりました。ユーザーコードでは、列挙項目の使用方法を適宜変更する必要があります。
QML インターフェース
QML によるソケットプログラミングは推奨されないため、QML インターフェースは削除されました。QDeclarativeBluetoothService、QDeclarativeBluetoothSocket、および QDeclarativeBluetoothDiscoveryModel(QML では BluetoothService、BluetoothSocket、および BluetoothDiscoveryModel)は、後継クラスなしで削除されました。
「error」シグナル
QBluetoothDeviceDiscoveryAgent 、QBluetoothLocalDevice 、QBluetoothServer 、QBluetoothServiceDiscoveryAgent 、QBluetoothSocket 、QLowEnergyController 、およびQLowEnergyService 内の「error」シグナルは、「error」シグナルと「error」ゲッターとの間の曖昧さを解消するため、「errorOccurred」にリネームされました。
© 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.