Trace QML Type (Uncreatable)
Trace 是一种用于触摸输入数据的数据模型。更多内容...
| Import Statement: | import QtQuick.VirtualKeyboard |
| Since: | QtQuick.VirtualKeyboard 2.0 |
| In C++: | QVirtualKeyboardTrace |
注意:这是一个无法创建的类型。无法在 QML 中实例化。
属性
- canceled : bool
- channels : list<strings>
- final : bool
- opacity : real
(since QtQuick.VirtualKeyboard 2.4) - traceId : int
方法
- int addPoint(point point)
- var channelData(string channel, int pos, int count)
- var points(int pos, int count)
- void setChannelData(int index, string channel, var data)
- void startHideTimer(int delayMs)
(since 6.1)
详细说明
Trace 为坐标数据以及与单个笔画相关的其他可选数据提供了数据模型。
trace 对象的一个典型用例如下:
- TraceInputArea 或其他输入设备通过调用InputEngine.traceBegin()方法触发trace事件。
- 如果当前输入法接受该事件,它将创建一个 trace 对象并配置所需的数据通道(如有)。
- TraceInputArea 收集 trace 对象的数据。
- TraceInputArea 调用 `InputEngine.traceEnd()` 方法结束跟踪,并将 Trace 对象交还给输入方法。
- 输入方法处理数据,并在不再需要该对象时将其丢弃。
坐标数据使用points() 函数检索。
除了基于坐标的数据外,还可以为每个数据点附加任意数据通道。
数据通道必须在添加数据点之前定义。TraceInputArea 支持的数据通道如下:
"t"收集每个数据点的时间。该时间表示自1970年1月1日以来的毫秒数:
例如,要配置该对象以收集每个数据点的时间:
QVirtualKeyboardTrace *trace = new QVirtualKeyboardTrace(this);
trace->setChannels(QStringList() << "t");可通过 `channelData()` 函数访问收集到的数据:
QVariantList timeData = trace->channelData("t");Trace 对象由其创建者拥有,通常情况下是输入方法。这意味着这些对象是在InputMethod.traceBegin() (QML) 方法中构建的。
根据定义,trace 对象最早可在InputMethod.traceEnd()(QML)方法中被销毁。
属性文档
canceled : bool
此属性用于确定跟踪是否被取消。对于canceled 属性设置为true的跟踪,不应处理其输入数据。
channels : list<strings>
跟踪中的附加数据通道列表。必须在添加数据之前初始化此属性。
final : bool
此属性用于定义该跟踪是否可以接受更多数据。如果值为true ,则不再接受任何数据。
opacity : real [since QtQuick.VirtualKeyboard 2.4]
此属性定义了“Trace”的遮盖程度。
数值越小,轨迹越透明:0.0 表示完全透明,而1.0 表示完全不透明。
该属性可用于在添加新轨迹时,使较旧的轨迹变得更透明。
该属性在 QtQuick.VirtualKeyboard 2.4 中引入。
traceId : int
此跟踪记录的唯一标识符。
方法文档
int addPoint(point point)
将一个point 添加到Trace中。
该方法返回所添加点的位置索引;若无法添加该点(即final 为真),则返回-1。
注意: 必须使用该 返回的索引,才能通过setChannelData()函数将附加数据与该点关联起来。
var channelData(string channel, int pos, int count)
返回来自指定channel 的数据。如果未提供其他参数,该函数将返回所有数据。
如果提供了pos 参数,该函数将返回从该位置开始的数据。count 参数用于限制返回的项目数量。
另请参阅 setChannelData()。
var points(int pos, int count)
返回点列表。如果未提供参数,该函数将返回所有点。
如果提供了pos 参数,该函数将返回从该位置开始的点。count 参数用于限制返回的点数。
返回的列表包含point 个类型。
void setChannelData(int index, string channel, var data)
为给定数据channel 中位于index 的点设置data 。
如果未对每个数据点调用此方法,通道数据将被用空值填充。但是,数据不能在任意索引处添加,即必须与点数据同步添加。
另请参阅 channelData()。
[since 6.1] void startHideTimer(int delayMs)
启动一个定时器,在delayMs 之后将不透明度设置为零。如果在delayMs 内再次调用此函数,则定时器将重新启动。
通过此函数,输入法可以在销毁跟踪对象之前将其从屏幕上隐藏,例如,以此表示该跟踪已完成处理。
该方法于 Qt 6.1 中引入。
© 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.