class QNdefRecord#

QNdefRecord 提供了 NFC NDEF 记录。 更多

从下面继承: QNdefNfcUriRecord, QNdefNfcTextRecord, QNdefNfcIconRecord, QNdefNfcSmartPosterRecord

概要#

方法#

备注

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

详细描述#

注意

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

QNdefRecord 及其派生类用于解析 NDEF 消息 的内容并创建新的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")

开发人员只需要提供对函数 foo()setFoo() 的实现,这些函数解析和设置 NDEF 记录有效负载的内容。

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__(typeNameFormat, type)#
参数:
__init__(other)
参数:

其他QNdefRecord

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

__init__(other, typeNameFormat)
参数:
__init__(other, typeNameFormat, type)
参数:
__init__()

构建一个新的空NDEF记录。

clear()#

清除NDEF记录。

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

id()#
返回类型::

QByteArray

返回NDEF记录的ID。

另请参阅

setId()

isEmpty()#
返回类型::

bool

如果NDEF记录包含一个空的有效负载,则返回 true;否则返回 false

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

__ne__(other)#
参数:

其他QNdefRecord

返回类型::

bool

如果这个NDEF记录与other不相等,则返回 true;否则返回 false

__eq__(other)#
参数:

其他QNdefRecord

返回类型::

bool

如果other和这个NDEF记录是相同的,则返回 true。否则返回 false

payload()#
返回类型::

QByteArray

返回NDEF记录的有效负载。

另请参阅

setPayload()

setId(id)#
参数:

idQByteArray

将 NDEF 记录的 id 设置为 id

另请参阅

id()

setPayload(payload)#
参数:

payloadQByteArray

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

另请参阅

payload()

setType(type)#
参数:

typeQByteArray

将 NDEF 记录的类型设置为 type

另请参阅

type()

setTypeNameFormat(typeNameFormat)#
参数:

typeNameFormatTypeNameFormat

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

另请参阅

typeNameFormat()

type()#
返回类型::

QByteArray

返回 NDEF 记录的类型。

另请参阅

setType()

typeNameFormat()#
返回类型::

TypeNameFormat

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

另请参阅

setTypeNameFormat()