QNdefRecord Class
La classe QNdefRecord fournit un enregistrement NFC NDEF. En savoir plus...
| En-tête : | #include <QNdefRecord> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Nfc) target_link_libraries(mytarget PRIVATE Qt6::Nfc) |
| qmake : | QT += nfc |
| Hérité par : | QNdefNfcIconRecord, QNdefNfcSmartPosterRecord, QNdefNfcTextRecord, et QNdefNfcUriRecord |
Types publics
| enum | TypeNameFormat { Empty, NfcRtd, Mime, Uri, ExternalRtd, Unknown } |
Fonctions publiques
| QNdefRecord() | |
| QNdefRecord(const QNdefRecord &other) | |
| ~QNdefRecord() | |
(since 6.2) void | clear() |
| QByteArray | id() const |
| bool | isEmpty() const |
| bool | isRecordType() const |
| QByteArray | payload() const |
| void | setId(const QByteArray &id) |
| void | setPayload(const QByteArray &payload) |
| void | setType(const QByteArray &type) |
| void | setTypeNameFormat(QNdefRecord::TypeNameFormat typeNameFormat) |
| QByteArray | type() const |
| QNdefRecord::TypeNameFormat | typeNameFormat() const |
| bool | operator!=(const QNdefRecord &other) const |
| QNdefRecord & | operator=(const QNdefRecord &other) |
| bool | operator==(const QNdefRecord &other) const |
Macros
| Q_DECLARE_ISRECORDTYPE_FOR_NDEF_RECORD(className, typeNameFormat, type) | |
| Q_DECLARE_NDEF_RECORD(className, typeNameFormat, type, initialPayload) |
Description détaillée
La classe QNdefRecord et ses classes dérivées sont utilisées pour analyser le contenu des fichiers « NDEF messages » et créer de nouveaux messages NDEF.
Utilisez les méthodes ` typeNameFormat()` et ` setTypeNameFormat()` pour récupérer et définir le format du nom de type de l'enregistrement NDEF.
Utilisez les méthodes ` type()` et ` setType()` pour récupérer et définir le type de l'enregistrement NDEF.
Utilisez les méthodes id() et setId() pour récupérer et définir l'identifiant de l'enregistrement NDEF.
Utilisez les méthodes payload() et setPayload() pour récupérer et définir la charge utile de l'enregistrement NDEF. La méthode isEmpty() permet de vérifier si la charge utile est vide.
QNdefRecord est une classe implicitement partagée. Cela signifie que vous pouvez effectuer efficacement des conversions entre QNdefRecord et des classes d’enregistrements spécialisées. La fonction modèle isRecordType() permet de vérifier si une conversion est possible. L’exemple suivant montre comment vérifier si un objet QNdefRecord est un enregistrement NFC RTD Text et en extraire les informations textuelles.
if (record.isRecordType<QNdefNfcTextRecord>()) {
QNdefNfcTextRecord textRecord(record);
qDebug() << textRecord.text();
}Création de classes d’enregistrements NDEF spécialisées
Les classes d'enregistrements NDEF spécialisées peuvent être facilement créées à l'aide des macros Q_DECLARE_NDEF_RECORD() et Q_DECLARE_ISRECORDTYPE_FOR_NDEF_RECORD(). L'exemple suivant montre la déclaration de classe du type d'enregistrement hypothétique example.com:f, qui encapsule une seule propriété de type int nommée foo.
class ExampleComF : public QNdefRecord
{
public:
Q_DECLARE_NDEF_RECORD(ExampleComF, QNdefRecord::ExternalRtd, "example.com:f",
QByteArray(sizeof(int), char(0)))
int foo() const;
void setFoo(int v);
};
Q_DECLARE_ISRECORDTYPE_FOR_NDEF_RECORD(ExampleComF, QNdefRecord::ExternalRtd, "example.com:f")Le développeur n'a qu'à fournir les implémentations des fonctions foo() et setFoo() qui analysent et définissent le contenu de la charge utile de l'enregistrement NDEF.
Documentation sur les types de membres
enum QNdefRecord::TypeNameFormat
Cette énumération décrit le format du nom de type d'un enregistrement NDEF.
| Constante | Valeur | Description |
|---|---|---|
QNdefRecord::Empty | 0x00 | Enregistrement NDEF vide ; l'enregistrement ne contient pas de charge utile |
QNdefRecord::NfcRtd | 0x01 | Le type d'enregistrement NDEF est défini par une spécification NFC RTD |
QNdefRecord::Mime | 0x02 | Le type d’enregistrement NDEF suit la structure décrite dans la RFC 2046 |
QNdefRecord::Uri | 0x03 | Le type d’enregistrement NDEF suit la structure décrite dans la RFC 3986 |
QNdefRecord::ExternalRtd | 0x04 | Le type d’enregistrement NDEF respecte la structure définie pour les noms de types externes dans la spécification NFC RTD |
QNdefRecord::Unknown | 0x05 | Le type de l'enregistrement est inconnu et doit être traité de la même manière qu'un contenu de type MIME « application/octet-stream » en l'absence de contexte supplémentaire |
Documentation des fonctions membres
QNdefRecord::QNdefRecord()
Crée un nouvel enregistrement NDEF vide.
QNdefRecord::QNdefRecord(const QNdefRecord &other)
Crée un nouvel enregistrement NDEF qui est une copie de other.
[noexcept] QNdefRecord::~QNdefRecord()
Supprime l'enregistrement NDEF.
[since 6.2] void QNdefRecord::clear()
Effacer l'enregistrement NDEF.
Un appel à la fonction ` isEmpty()` renvoie ` true ` pour un enregistrement effacé. La propriété ` type()` de l'enregistrement est définie sur ` Empty`.
Cette fonction a été introduite dans Qt 6.2.
QByteArray QNdefRecord::id() const
Renvoie l'identifiant de l'enregistrement NDEF.
Voir également setId().
bool QNdefRecord::isEmpty() const
Renvoie « true » si l'enregistrement NDEF contient une charge utile vide ; sinon, renvoie « false ».
Cela revient à appeler la méthode payload().isEmpty().
template <typename T> bool QNdefRecord::isRecordType() const
Renvoie « true » si l'enregistrement NDEF correspond au type d'enregistrement spécifié ; sinon, renvoie « false ».
QByteArray QNdefRecord::payload() const
Renvoie la charge utile de l'enregistrement NDEF.
Voir également setPayload().
void QNdefRecord::setId(const QByteArray &id)
Définit l'identifiant de l'enregistrement NDEF sur « id ».
Voir également id().
void QNdefRecord::setPayload(const QByteArray &payload)
Définit la charge utile de l'enregistrement NDEF sur payload.
Voir également payload().
void QNdefRecord::setType(const QByteArray &type)
Définit le type de l'enregistrement NDEF sur « type ».
Voir également type().
void QNdefRecord::setTypeNameFormat(QNdefRecord::TypeNameFormat typeNameFormat)
Définit le format du nom de type de l'enregistrement NDEF sur « typeNameFormat ».
Voir également typeNameFormat().
QByteArray QNdefRecord::type() const
Renvoie le type de l'enregistrement NDEF.
Voir également setType().
QNdefRecord::TypeNameFormat QNdefRecord::typeNameFormat() const
Renvoie le nom du type au format de l'enregistrement NDEF.
Voir également setTypeNameFormat().
bool QNdefRecord::operator!=(const QNdefRecord &other) const
Renvoie « true » si cet enregistrement NDEF n'est pas égal à « other » ; sinon, renvoie « false ».
QNdefRecord &QNdefRecord::operator=(const QNdefRecord &other)
Attribue cet enregistrement NDEF à other.
bool QNdefRecord::operator==(const QNdefRecord &other) const
Renvoie « true » si « other » et cet enregistrement NDEF sont identiques. Sinon, renvoie « false ».
Documentation des macros
Q_DECLARE_ISRECORDTYPE_FOR_NDEF_RECORD(className, typeNameFormat, type)
Cette macro déclare une spécialisation de modèle pour la fonction ` QNdefRecord::isRecordType()`.
Cette macro doit être utilisée dans le fichier d’en-tête, immédiatement après la définition d’une classe d’enregistrement NDEF spécialisée.
className est le nom de la classe spécialisée, typeNameFormat correspond à l’ QNdefRecord::TypeNameFormat appropriée pour le type personnalisé et type désigne le type sans les préfixes NID ni NSS. Il s’agit donc de example.com:f et non de urn:nfc:ext:example.com:f.
Pour plus de détails, consultez la section consacrée à ` Creating specialized NDEF record classes `.
Voir également Q_DECLARE_NDEF_RECORD().
Q_DECLARE_NDEF_RECORD(className, typeNameFormat, type, initialPayload)
Cette macro déclare des constructeurs par défaut et de copie pour les classes d'enregistrements NDEF spécialisées.
className est le nom de la classe spécialisée, typeNameFormat correspond à l’ QNdefRecord::TypeNameFormat appropriée pour le type personnalisé et type désigne le type sans les préfixes NID ou NSS. Il s’agit donc de example.com:f et non de urn:nfc:ext:example.com:f. initialPayload correspond à la charge utile initiale d’un enregistrement vide ; il doit s’agir d’un QByteArray ou d’un type pouvant être implicitement converti en QByteArray.
Voir la section sur Creating specialized NDEF record classes pour plus de détails.
Voir également Q_DECLARE_ISRECORDTYPE_FOR_NDEF_RECORD().
© 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.