PySide6.QtNfc.QNdefRecord

class QNdefRecord

QNdefRecord 类提供了一个 NFC NDEF 记录。更多

继承自: QNdefNfcUriRecord, QNdefNfcTextRecord, QNdefNfcIconRecord, QNdefNfcSmartPosterRecord

概要

方法

注意

本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。

详细描述

警告

本节包含从C++自动翻译到Python的代码片段,可能包含错误。

QNdefRecord 及其派生类用于解析 NDEF messages 的内容并创建新的 NDEF 消息。

使用typeNameFormat()setTypeNameFormat()来获取和设置NDEF记录的类型名称格式。

使用 type()setType() 来获取和设置 NDEF 记录的类型。

使用 id()setId() 来获取和设置 NDEF 记录的 id。

使用 payload()setPayload() 来获取和设置 NDEF 记录的有效载荷。isEmpty() 可用于测试有效载荷是否为空。

QNdefRecord 是一个隐式共享类。这意味着你可以在 QNdefRecord 和专门的记录类之间高效地进行转换。isRecordType() 模板函数可以用来测试是否可以进行转换。以下示例展示了如何测试一个 QNdefRecord 是否是 NFC RTD 文本记录,并从中提取文本信息。

if record.isRecordType<QNdefNfcTextRecord>():
    textRecord = QNdefNfcTextRecord(record)
    print(textRecord.text())

创建专门的NDEF记录类

可以使用Q_DECLARE_NDEF_RECORD()Q_DECLARE_ISRECORDTYPE_FOR_NDEF_RECORD()宏轻松创建专门的NDEF记录类。以下示例展示了假设的example.com:f记录类型的类声明,该类型封装了一个int属性foo。

class ExampleComF(QNdefRecord):

# public
    Q_DECLARE_NDEF_RECORD(ExampleComF, QNdefRecord.ExternalRtd, "example.com:f",
                          QByteArray(sizeof(int), char(0)))
    foo = int()
    def setFoo(v):

Q_DECLARE_ISRECORDTYPE_FOR_NDEF_RECORD(ExampleComF, QNdefRecord.ExternalRtd, "example.com:f")

开发者只需要为解析和设置NDEF记录有效载荷内容的foo()setFoo()函数提供实现。

class TypeNameFormat

此枚举描述了NDEF记录的类型名称格式。

常量

描述

QNdefRecord.Empty

一个空的NDEF记录,该记录不包含有效载荷

QNdefRecord.NfcRtd

NDEF记录类型由NFC RTD规范定义

QNdefRecord.Mime

NDEF记录类型遵循RFC 2046中描述的结构

QNdefRecord.Uri

NDEF记录类型遵循RFC 3986中描述的结构

QNdefRecord.ExternalRtd

NDEF记录类型遵循NFC RTD规范中描述的外部类型名称的构造

QNdefRecord.Unknown

记录的类型未知,应视为类似于没有进一步上下文的MIME类型为‘application/octet-stream’的内容

__init__()

构造一个新的空NDEF记录。

__init__(other)
Parameters:

其他QNdefRecord

构造一个新的NDEF记录,它是other的副本。

__init__(typeNameFormat, type)
Parameters:
__init__(other, typeNameFormat)
Parameters:
__init__(other, typeNameFormat, type)
Parameters:
clear()

清除NDEF记录。

一个isEmpty()调用对于已清除的记录返回true。记录的type()被设置为Empty

id()
Return type:

QByteArray

返回NDEF记录的ID。

另请参阅

setId()

isEmpty()
Return type:

布尔

如果NDEF记录包含空负载,则返回true;否则返回false

这相当于调用 payload().isEmpty()

__ne__(other)
Parameters:

其他QNdefRecord

Return type:

布尔

如果此NDEF记录不等于other,则返回true;否则返回false

__eq__(other)
Parameters:

其他QNdefRecord

Return type:

布尔

如果 other 和此 NDEF 记录相同,则返回 true。否则返回 false

payload()
Return type:

QByteArray

返回NDEF记录的有效载荷。

另请参阅

setPayload()

setId(id)
Parameters:

idQByteArray

设置NDEF记录的ID为id

另请参阅

id()

setPayload(payload)
Parameters:

payloadQByteArray

将NDEF记录的有效负载设置为payload

另请参阅

payload()

setType(type)
Parameters:

类型QByteArray

设置NDEF记录的类型为type

另请参阅

type()

setTypeNameFormat(typeNameFormat)
Parameters:

typeNameFormatTypeNameFormat

设置NDEF记录的类型名称格式为typeNameFormat

另请参阅

typeNameFormat()

type()
Return type:

QByteArray

返回NDEF记录的类型。

另请参阅

setType()

typeNameFormat()
Return type:

TypeNameFormat

返回NDEF记录的类型名称格式。

另请参阅

setTypeNameFormat()