QSensor类

QSensor类表示单个硬件传感器。 更多信息...

头文件 #include <QSensor>
CMakefind_package(Qt6 REQUIRED COMPONENTS Sensors)
target_link_libraries(mytarget PRIVATE Qt6::Sensors)
qmakeQT += sensors
继承 QObject
继承
13个类型

QAccelerometerQAmbientLightSensorQAmbientTemperatureSensorQCompassQGyroscopeQHumiditySensorQLightSensorQMagnetometerQOrientationSensorQPressureSensorQProximitySensorQRotationSensor,以及QTiltSensor

公共类型

枚举AxesOrientationMode { FixedOrientation, AutomaticOrientation, UserOrientation }
枚举Feature { Buffering, AlwaysOn, SkipDuplicates, GeoValues, FieldOfView, …, AxesOrientation }

属性

公共函数

QSensor(const QByteArray &type, QObject *parent = nullptr)
虚拟~QSensor()
voidaddFilter(QSensorFilter *filter)
qrangelistavailableDataRates() const
QSensor::AxesOrientationModeaxesOrientationMode() const
intbufferSize() const
boolconnectToBackend()
intcurrentOrientation() const
intdataRate() const
QStringdescription() const
intefficientBufferSize() const
interror() const
QList<QSensorFilter *>filters() const
QByteArrayidentifier() const
boolisActive() const
boolisAlwaysOn() const
boolisBusy() const
boolisConnectedToBackend() const
boolisFeatureSupported(QSensor::Feature feature) const
intmaxBufferSize() const
intoutputRange() const
qoutputrangelistoutputRanges() const
QSensorReading *reading() const
voidremoveFilter(QSensorFilter *filter)
voidsetActive(bool active)
voidsetAlwaysOn(bool alwaysOn)
voidsetAxesOrientationMode(QSensor::AxesOrientationMode axesOrientationMode)
voidsetBufferSize(int bufferSize)
voidsetCurrentOrientation(int currentOrientation)
voidsetDataRate(int rate)
voidsetEfficientBufferSize(int efficientBufferSize)
voidsetIdentifier(const QByteArray &identifier)
voidsetMaxBufferSize(int maxBufferSize)
voidsetOutputRange(int index)
voidsetSkipDuplicates(bool skipDuplicates)
voidsetUserOrientation(int userOrientation)
boolskipDuplicates() const
QByteArraytype() const
intuserOrientation() const

公有槽函数

boolstart()
voidstop()

信号

voidactiveChanged()
voidalwaysOnChanged()
voidavailableSensorsChanged()
voidaxesOrientationModeChanged(QSensor::AxesOrientationMode axesOrientationMode)
voidbufferSizeChanged(int bufferSize)
voidbusyChanged()
voidcurrentOrientationChanged(int currentOrientation)
voiddataRateChanged()
voidefficientBufferSizeChanged(int efficientBufferSize)
voididentifierChanged()
voidmaxBufferSizeChanged(int maxBufferSize)
voidreadingChanged()
voidsensorError(int error)
voidskipDuplicatesChanged(bool skipDuplicates)
voiduserOrientationChanged(int userOrientation)

静态公有成员

QByteArraydefaultSensorForType(const QByteArray &type)
QList<QByteArray>传感器类型()
QList<QByteArray>sensorsForType(const QByteArray &type)

详细描述

传感器的生命周期通常是

  • 在堆栈或堆上创建 QSensor 的子类。
  • 根据应用程序要求进行设置。
  • 开始接收值。
  • 应用程序使用传感器数据。
  • 停止接收值。

传感器数据通过《QSensorReading》及其子类传递。

方向

有些传感器会对屏幕方向变化做出反应,例如《QAccelerometer》、《QMagnetometer》和《QRotationSensor》。这些都是所谓的“可定向”传感器。对于可定向传感器,QSensor 支持根据屏幕方向更改读取值的报告。

对于可定向传感器,axesOrientationMode 属性控制方向如何影响读取值。

在默认模式 QSensor::FixedOrientation 中,读取值不受方向的影响。在 QSensor::AutomaticOrientation 模式下,读取值会自动根据当前屏幕方向旋转。最后,在 QSensor::UserOrientation 模式下,读取值会根据用户指定的方向旋转。

此功能仅在后端支持且传感器是可定向的情况下才可用,可以通过调用带有 QSensor::AxesOrientation 标志的 QSensor::isFeatureSupported() 函数来检查。

此处方向值总是屏幕方向,而不是设备方向。屏幕方向是 GUI 的方向。例如,当顺时针旋转设备 90 度时,屏幕方向通过顺时针旋转 90 度来补偿,使得 GUI 在设备旋转后仍然垂直。请注意,应用程序可以锁定屏幕方向,例如强制横屏或竖屏模式。对于锁定方向,如果设备方向改变,可定向传感器不会对读取变化做出反应,因为可定向传感器仅对屏幕方向变化做出反应。这很有道理,因为可定向传感器的目的是保持传感器方向与屏幕方向同步。

方向值范围从 0 到 270 度。方向按顺时针方向应用,例如,90 度的方向值表示屏幕已从原始位置顺时针旋转 90 度,以补偿向左旋转设备 90 度。

另请参阅《QSensorReading》。

成员类型文档

enum QSensor::AxesOrientationMode

描述读取值如何受屏幕方向的影响。

常量描述
QSensor::FixedOrientation0不对读取值应用自动旋转。
QSensor::AutomaticOrientation1根据屏幕方向自动旋转读取值。
QSensor::UserOrientation2根据《userOrientation》属性的角旋转读取值。

另请参阅《QSensor::axesOrientationMode》。

enum QSensor::Feature

列出后端可能支持的可选功能。

所有传感器类型共有的特性包括:

常量描述
QSensor::Buffering0后端支持读取缓冲,通过 QSensor::bufferSize 属性控制。
QSensor::AlwaysOn1后端支持改变当空闲时是否挂起的策略,通过 QSensor::alwaysOn 属性控制。
QSensor::SkipDuplicates5后端支持跳过相同或非常相似的连续读取。可以通过将 QSensor::skipDuplicates 属性设置为 true 启用此功能。

QMagnetometer 的特性包括:

常量描述
QSensor::GeoValues2后端支持返回地理值,可以通过使用 QMagnetometer::returnGeoValues 属性控制。

QLightSensor 的特性包括:

常量描述
QSensor::FieldOfView3后端指定其视场,可以从 QLightSensor::fieldOfView 属性中读取。

QAccelerometer 的特性包括:

常量描述
QSensor::AccelerationMode4后端支持使用 QAccelerometer::accelerationMode 属性切换加速度计的模式。

QPressureSensor 的特性包括:

常量描述
QSensor::PressureSensorTemperature7后端提供压力传感器的芯片温度。

所有可 orientable 传感器的特性包括:

常量描述
QSensor::AxesOrientation6后端支持从默认的 QSensor::FixedOrientation 切换到其他方向。

另请参阅 QSensor::isFeatureSupported

属性文档

active : bool

此属性保留一个值,表示该传感器是否处于活动状态。

如果传感器处于活动状态(返回值),则为 true。否则为 false。

请注意,将此值设置为 true 不会产生即时效果。相反,一旦进入事件循环,传感器将被启动。

访问函数

boolisActive() const
voidsetActive(bool active)

通知信号

alwaysOn : bool

此属性保留一个值,表示传感器在屏幕关闭时是否应该继续运行。

某些平台在屏幕关闭时会有挂起传感器的策略。将此属性设置为 true 将确保传感器继续运行。

访问函数

boolisAlwaysOn() const
voidsetAlwaysOn(bool alwaysOn)

通知信号

[只读] availableDataRates : const qrangelist

此属性保留传感器支持的数据率。

这是一个支持的数据率列表。以赫兹为单位。

列表中的条目可以表示离散率或一系列的率。具有相同值的条目表示离散率。

请注意,此信息不是强制性的,因为并非所有传感器都有运行速率。在这种情况下,列表将为空。

访问函数

qrangelistavailableDataRates() const

另请参阅 QSensor::dataRateqrangelist

axesOrientationMode : AxesOrientationMode

该属性存储着影响屏幕方向变化读取值的模式。

当设置为FixedOrientation(默认模式)时,读取值不会应用自动旋转。这是不支持QSensor::AxesOrientation功能的后端可用的唯一模式。

当设置为AutomaticOrientation时,在屏幕方向变化时,读取值将自动旋转。实际上,屏幕方向被取消。

举例来说,假设设备旋转了180度,因此屏幕方向也从原生方向旋转了180度。没有自动轴方向,读取值现在会改变:X和Y值都会取反,迫使应用程序开发者手动在应用程序代码中取消取反。自动轴方向会自动完成此操作,在这种模式下,X和Y值将与默认屏幕方向相同。

这种自动旋转轴对于某些用例很有用,例如在测量水平度的气泡水平仪应用程序中,通过检查加速度计的X轴值来测量表面水平。当地设备和屏幕方向旋转90度时,应用程序开发者不需要做任何改变,即使在设备旋转后,他也可以继续使用X轴值。如果没有自动轴方向,应用程序开发者需要查看Y值,从而根据屏幕方向在不同的轴上增加读取应用程序的代码。

UserOrientation模式与AutomaticOrientation模式非常相似,只是屏幕方向是手动控制而不是自动确定。然后使用userOrientation属性的角来旋转读取值。

由于读取值的旋转基于屏幕方向,Z值永远不会改变,因为Z轴是垂直于屏幕的。屏幕方向以90度步进变化时,读取值的旋转也是以90度步进进行。

此属性仅用于可导向传感器。

访问函数

QSensor::AxesOrientationModeaxesOrientationMode() const
voidsetAxesOrientationMode(QSensor::AxesOrientationMode axesOrientationMode)

通知信号

voidaxesOrientationModeChanged(QSensor::AxesOrientationMode axesOrientationMode)

bufferSize : int

该属性存储着缓冲区的大小。默认情况下,缓冲区大小为1,这意味着没有缓冲。如果最大缓冲区大小为1,则传感器不支持缓冲。

设置 bufferSize 大于 maxBufferSize 将会导致使用 maxBufferSize

当 bufferSize 大于1时,会打开缓冲。传感器将收集请求的样本数,并一次性将它们全部提供给应用程序。它们将以读数改变的突发方式提供给应用程序,因此特别重要的是,应用程序必须立即处理每个读取值或将其保存在其他地方。

如果缓冲正在进行时调用 stop(),则不会交付部分的缓冲。

当缓冲选项启动传感器时,将从那时起收集值。没有现有的缓冲区可以利用。

某些后端仅支持启用或禁用缓冲,并不提供对大小的控制。在这种情况下,即使支持缓冲,maxBufferSizeefficientBufferSize属性可能根本未设置。将bufferSize属性设置为大于1的任何值将启用缓冲。一旦传感器启动,bufferSize属性将由后端设置为实际值。

访问函数

intbufferSize() const
voidsetBufferSize(int bufferSize)

通知信号

voidbufferSizeChanged(int bufferSize)

另请参阅QSensor::maxBufferSizeQSensor::efficientBufferSize.

[只读] busy : const bool

此属性包含一个用于表示传感器是否忙碌的值。

某些传感器可能存在于系统中,但不可使用。如果传感器正忙,此函数将返回 true。您将无法启动传感器。

请注意,如果您正在使用传感器,则此函数不返回 true,只有当另一个进程正在使用该传感器时才会返回 true。

访问函数

boolisBusy() const

通知信号

voidbusyChanged()

另请参阅busyChanged

[只读] connectedToBackend : const bool

此属性包含一个用于表示传感器是否已连接到后端的值。

尚未连接到后端的传感器无法完成任何有用的操作。

调用 connectToBackend() 方法可以强制传感器立即连接到后端。如果您调用start,这会自动完成,因此您只需要这样做,如果您需要访问传感器属性(例如,在使用传感器之前轮询传感器的元数据)。

访问函数

boolisConnectedToBackend() const

[只读] currentOrientation : const int

此属性包含用于旋转读数值的当前方向。

它可能不与屏幕方向相同。例如,在FixedOrientation模式中,读数值不会旋转,因此属性为0。

UserOrientation模式中,读数值根据userOrientation属性的值进行旋转,因此该属性值等于userOrientation属性。

AutomaticOrientation模式中,读数值根据屏幕方向进行旋转,因此此属性值等于当前屏幕方向。

此属性由后端设置,并且仅对可导向传感器有效。

访问函数

intcurrentOrientation() const

通知信号

voidcurrentOrientationChanged(int currentOrientation)

dataRate : int

此属性包含传感器应运行的数据速率。

以赫兹为单位测量。

数据速率是传感器可以检测变化的最高频率。

设置此属性是不可移植的,并可能导致与其他应用程序发生冲突。检查传感器后端和平台文档以获取有关多个应用程序请求数据速率的任何策略。

默认值(0)表示应用程序不关心数据速率。应用程序应考虑使用基于计时器的轮询当前值,或确保处理值的代码可以非常快地运行,因为平台每秒可能提供 hundreds 次更新。

应在调用start之前设置此属性,因为当传感器运行时,它可能不会注意到此值的更改。

请注意,该平台没有确定当前使用的数据速率的机制。

访问函数

intdataRate() const
voidsetDataRate(int rate)

通知信号

voiddataRateChanged()

参见 QSensor::availableDataRates.

[只读] description : const QString

此属性包含传感器的描述性字符串。

访问函数

QStringdescription() const

[只读] efficientBufferSize : const int

此属性包含最有效的缓冲区大小。通常这是1(表示没有特定大小是最有效的)。一些传感器驱动程序具有FIFO缓冲区,这使得一次性发送FIFO大小的读取内容更为有效。

访问函数

intefficientBufferSize() const

通知信号

voidefficientBufferSizeChanged(int efficientBufferSize)

参见 QSensor::bufferSizeQSensor::maxBufferSize.

[只读] error : const int

此属性包含设置在传感器上的最后一个错误代码。

请注意,错误代码是传感器特定的。

访问函数

interror() const

通知信号

voidsensorError(int error)

identifier : QByteArray

此属性包含传感器的后端标识符。

请注意,标识符在传感器连接到后端时会自动填写。如果您想连接特定的后端,应在 connectToBackend() 之前调用 setIdentifier()。

访问函数

QByteArrayidentifier() const
voidsetIdentifier(const QByteArray &identifier)

通知信号

voididentifierChanged()

[只读] maxBufferSize : const int

此属性包含最大缓冲区大小。

请注意,这可能是1,在这种情况下,传感器不支持任何形式的缓冲。在这种情况下,isFeatureSupported(QSensor::Buffering) 也会返回false。

访问函数

intmaxBufferSize() const

通知信号

voidmaxBufferSizeChanged(int maxBufferSize)

参见 QSensor::bufferSizeQSensor::efficientBufferSize.

outputRange : int

此属性包含传感器当前使用的输出范围。

此值表示在 QSensor::outputRanges 列表中使用的索引。

设置此属性不可移植,可能会导致与其他应用程序发生冲突。请查阅传感器后端和平台文档,以获取有关多个应用程序请求输出范围的政策。

默认值(-1)表示应用不需要关心输出范围。

请注意,没有机制来确定平台当前使用的输出范围。

访问函数

intoutputRange() const
voidsetOutputRange(int index)

参见 QSensor::outputRanges.

[只读] outputRanges : const qoutputrangelist

此属性包含传感器支持的输出范围列表。

传感器可能具有多个输出范围。通常,这样做是为了扩大测量范围,但会降低精度。

请注意,此信息不是强制的。此信息通常仅适用于具有可选用输出范围的传感器(例如典型的加速度计)。

访问函数

qoutputrangelistoutputRanges() const

另请参阅QSensor::outputRangeqoutputrangelist

[只读] reading : QSensorReading* const

此属性包含读取类。

读取类提供对传感器读取数据的访问。读取对象是最新的传感器读取数据的易失性缓存,因此应用程序应立即处理读取数据或将其保存到其他地方以供稍后处理。

请注意,在将传感器后端连接到后端之前,此函数将返回0。

请注意,在调用start()之后,读取数据并不立即可用。应用程序必须等待readingChanged()信号被发出。

访问函数

QSensorReading *reading() const

通知信号

另请参阅isConnectedToBackend() 和 start

skipDuplicates : bool

指示是否应省略重复的读取值。

启用重复跳过时,省略具有相同或非常相似值的连续读取。这有助于减少处理量,因为可用的传感器读取较少。因此,读取数据以不规则的时间间隔到达。

重复跳过不仅适用于完全相同的读取,而且还适用于相当相似的读取,因为即使在设备未被移动的情况下,每个传感器也有一点点抖动。

对此属性的支持取决于后端。使用isFeatureSupported()检查当前平台是否支持。

默认情况下禁用重复跳过。

传感器的重复跳过将生效,当传感器开始时,在传感器活动时更改属性不会立即产生效果。

访问函数

boolskipDuplicates() const
voidsetSkipDuplicates(bool skipDuplicates)

通知信号

voidskipDuplicatesChanged(bool skipDuplicates)

[只读] type : const QByteArray

此属性包含传感器的类型。

访问函数

QByteArraytype() const

userOrientation : int

此属性包含在UserOrientation模式中用于旋转读取值的角度。

当将axesOrientationMode属性设置为UserOrientation时,旋转读取值的角度取自此属性。在其他模式下,属性没有任何效果。

默认值为0。唯一有效的值是0、90、180和270,因为这些是唯一的可能屏幕方向。

此属性仅对可旋转传感器有效。

访问函数

intuserOrientation() const
voidsetUserOrientation(int userOrientation)

通知信号

voiduserOrientationChanged(int userOrientation)

成员函数文档

[明确指出] QSensor::QSensor(const QByteArray &type, QObject *parent = nullptr)

parent的子结构构建type传感器。

如果存在特定的传感器类型的派生类,请勿使用此构造函数。

使用基类构造函数是错误的方式

QSensor *magnetometer = new QSensor(QMagnetometer::sensorType, this);

正确的方式是创建派生类的实例

QMagnetometer *magnetometer = new QMagnetometer(this);

派生类具有一些属性和数据成员,这些属性和数据成员对于某些功能是必需的,例如,在QMagnetometer中的地理值支持或在QAccelerometer中的加速度模式支持。只有从QSensor子类创建传感器实例时,这些功能才能正常工作。

只有在没有可用的派生传感器类时才使用此构造函数。请注意,所有内置传感器都有自己的派生类,因此使用此构造函数通常只在实际实现自定义传感器时才是必要的。

[虚拟 noexcept] QSensor::~QSensor()

销毁传感器。如果传感器还没有停止,它将停止传感器。

[信号] void QSensor::activeChanged()

QSensor::active属性改变时,会发出此信号。

注意:属性active的通知信号。

另请参阅:QSensor::active

void QSensor::addFilter(QSensorFilter *filter)

向传感器添加一个filter

传感器不会拥有这个filter的所有权。如果filter被销毁,QSensorFilter将通知传感器。

另请参阅:QSensorFilter

[信号] void QSensor::alwaysOnChanged()

alwaysOn属性改变时,会发出此信号。

注意:属性alwaysOn的通知信号。

[信号] void QSensor::availableSensorsChanged()

当可用的传感器列表改变时,会发出此信号。通常程序可用的传感器列表不会随时间改变,但是有些可用的传感器可能代表非永久连接的硬件。例如,一个通过蓝牙连接的游戏控制器在开启时会变得可用,在关闭时则会不可用。

另请参阅:QSensor::sensorTypes()和QSensor::sensorsForType

[信号] void QSensor::busyChanged()

当传感器不再忙碌时,会发出此信号。这可以用来在传感器变得可用时获取传感器。

sensor.start();
if (sensor.isBusy()) {
    // need to wait for busyChanged signal and try again
}

注意:属性busy的通知信号。

[可调用] bool QSensor::connectToBackend()

尝试连接到一个传感器后端。

如果找到了合适的后端,返回true,否则返回false。

如果您直接使用QSensor,必须在调用此方法之前设置类型。

注意:此函数可以通过元对象系统和从 QML 调用。参见 Q_INVOKABLE

也参见:isConnectedToBackend()。

[静态] QByteArray QSensor::defaultSensorForType(const QByteArray &type)

返回 type 的默认传感器标识符。这在配置文件中设置,必要时可以覆盖。如果没有提供默认设置,则系统将返回第一个注册的 type 传感器。

请注意,存在特殊案例逻辑,以防止当为同一类型注册了其他后端时,通用的插件后端成为默认项。这种逻辑意味着以 generic. 开头的后端标识符只能是默认值,如果没有为该类型注册其他后端或者它在 Sensors.conf 中指定。

也参见:确定类型的默认传感器

QList<QSensorFilter *> QSensor::filters() const

返回当前附着到传感器的过滤器。

另请参阅:QSensorFilter

[可调用] bool QSensor::isFeatureSupported(QSensor::Feature feature) const

检查后端是否支持特定功能。

QtSensors 支持丰富的 API,用于控制和提供有关传感器的信息。当然,并非所有这些功能都由所有后端支持。

要检查当前后端是否支持功能 feature,请调用此函数。

需要连接后端,否则将返回 false。调用 connectToBackend() 或 start() 将创建到后端的连接。

后端必须实现 QSensorBackend::isFeatureSupported() 以使其生效。

如果后端连接,则返回是否支持功能,如果后端未连接,则返回 false。

注意:此函数可以通过元对象系统和从 QML 调用。参见 Q_INVOKABLE

[信号] void QSensor::readingChanged()

当收到新的传感器读取值时,会发出该信号。

传感器读取值可以在 QSensor::reading 属性中找到。请注意,读取对象是最近接收到的传感器读取值的易失性缓存,因此应用程序应立即处理读取值或将值保存到某个位置以供以后处理。

在首次发出此信号之前,读取对象将具有未初始化的数据。

注意:属性 reading 的通知信号。

也参见:start

void QSensor::removeFilter(QSensorFilter *filter)

从传感器中移除 filter

另请参阅:QSensorFilter

[信号] void QSensor::sensorError(int error)

当在传感器上设置 error 码时,会发出此信号。请注意,某些错误会导致传感器停止工作。您应该调用 isActive() 以确定传感器是否仍在运行。

注意:属性 error 的通知信号。

[静态] QList<QByteArray> QSensor::sensorTypes()

返回所有传感器类型的列表。

[静态] QList<QByteArray> QSensor::sensorsForType(const QByteArray &type)

返回每种类型传感器的ID列表。如果没有任何该类型的传感器,则列表为空。

void QSensor::setCurrentOrientation(int currentOrientation)

设置当前屏幕方向为 currentOrientation。这应在屏幕方向或 currentOrientation 属性更改时从后端调用。

另请参阅currentOrientation

void QSensor::setEfficientBufferSize(int efficientBufferSize)

设置有效缓冲区大小为 efficientBufferSize。这应在后端调用。

另请参阅efficientBufferSize

void QSensor::setMaxBufferSize(int maxBufferSize)

设置最大缓冲区大小为 maxBufferSize。这应在后端调用。

另请参阅maxBufferSize

void QSensor::setSkipDuplicates(bool skipDuplicates)

设置重复项跳过为 skipDuplicates

注意:属性 skipDuplicates 的设置函数。

另请参阅skipDuplicates

[信号] void QSensor::skipDuplicatesChanged(bool skipDuplicates)

skipDuplicates 属性更改时,会发出此信号。

注意:属性 skipDuplicates 的通知信号。

[槽] bool QSensor::start()

开始从传感器检索值。如果传感器已启动,则返回 true,否则返回 false。

传感器可能会因为几个原因而失败启动。

一旦应用程序启动了一个传感器,它必须在传感器接收到新值之前等待,才能查询传感器的值。这是因为传感器如何从系统中接收值。传感器(一般而言)不会轮询新的值,而新值会在发生时推送到传感器。

例如,此代码不会按预期工作。

sensor->start();
sensor->reading()->x(); // no data available

为了正确工作,访问读取的代码应确保已发出 readingChanged() 信号。

    connect(sensor, SIGNAL(readingChanged()), this, SLOT(checkReading()));
    sensor->start();
}
void MyClass::checkReading() {
    sensor->reading()->x();

另请参阅QSensor::busy

[slot] void QSensor::stop()

停止从传感器获取值。

这会释放传感器,以便其他进程可以使用它。

另请参阅QSensor::busy

相关非成员

[别名] qoutputrangelist

此类型定义为一个 qoutputrange 值的列表。

typedef QList<qoutputrange> qoutputrangelist;

另请参阅QListqoutputrangeQSensor::outputRanges

[别名] qrange

此类型定义为一个 QPair

typedef QPair<int,int> qrange;

另请参阅QPairqrangelistQSensor::availableDataRates

[别名] qrangelist

此类型定义为一个 qrange 值的列表。

typedef QList<qrange> qrangelist;

另请参阅QListqrangeQSensor::availableDataRates

© 2024 The Qt Company Ltd. 本文档中的文档贡献属于其各自所有者的版权。提供的文档根据自由软件基金会发布的 GNU 自由文档许可协议第 1.3 版 的条款进行许可。Qt 和相应的徽标是芬兰和/或世界其他地区的 Qt Company Ltd. 的商标。所有其他商标均为其各自所有者的财产。