MonitorModel QML 类型
可以从各种来源获取数据并保存其值的模型。 更多...
导入语句 | import QtApplicationManager 2.0 |
属性
- count : int
- dataSources : list
- interval : int
- maximumCount : int
- running : bool
方法
详细描述
MonitorModel 可以定期从各种来源获取数据并保存其值的 历史。其主要用途是作为一个模型,在图表中绘制历史数据以便于监控,例如 CPU 使用率图表。
以下代码片段展示了如何使用它绘制一个简单的柱状图来表示系统 CPU 的负载
import QtQuick import QtApplicationManager ListView { id: listView width: 400 height: 100 orientation: ListView.Horizontal spacing: (width / model.count) * 0.2 clip: true interactive: false model: MonitorModel { id: monitorModel running: listView.visible CpuStatus {} } delegate: Rectangle { width: (listView.width / monitorModel.count) * 0.8 height: model.cpuLoad * listView.height y: listView.height - height color: "blue" } }
要将数据源添加到 MonitorModel 中,只需在模型中声明它,就像上面的例子中使用CpuStatus组件所做的那样。或者(例如,从命令式 JavaScript 代码)您也可以通过将它们分配给 MonitorModel 的dataSources属性来添加数据源。
数据源可以是任何具有以下特性的QtObject:
- = 一个
roleNames
属性:这是一个字符串列表,命名了此数据源提供的作用域。那些作用域名称将在 MonitorModel 创建的每一行中可用。 - 与
roleNames
属性中提供的名称匹配的属性:MonitorModel 将在构建新模型行时查询它们的值。 - = 一个
update()
函数:MonitorModel 在创建每个新的模型行之前将调用它,这样数据源就可以更新其属性的值。
以下代码片段显示了 MonitorModel 使用以 QML 编写的自定义数据源
MonitorModel { running: true QtObject { property var roleNames: ["foo", "bar"] function update() { // foo will have ever increasing values foo += 1; // bar will keep oscillating between 0 and 10 if (up) { bar += 1; if (bar == 10) up = false; } else { bar -= 1; if (bar == 0) up = true; } } property int foo: 0 property int bar: 10 property bool up: false } }
因此,在上面的 MonitorModel 中,每一行都将有两个作用域:foo
和 bar
。如果将其绘制出来,你会看到一个不断增强的 foo 和一个振荡的 bar。
QtApplicationManager 附带了许多组件,这些组件可以 readily用作数据源,具体如下:
当 running 属性为 true 时,MonitorModel 将每 interval 毫秒探测其数据源一次,每次创建一个新行,直到达到 maximumCount。一旦达到该值,最旧的一行(第一个)将每当新行到来时被抛弃,以确保 count 不会超过 maximumCount。新行总是附加到模型中,因此行按时间顺序从最老(索引 0)到最新(索引 count-1)排列。
属性文档
count : int |
模型中的行数。范围从零到 MonitorModel::maximumCount。
dataSources : list<object> |
MonitorModel 要使用的数据源列表。数据源可以是任何包含至少一个 roleNames
属性和一个 update()
函数的 QtObject。有关更多信息,请参见上述详细说明。
interval : int |
在 MonitorModel::running 为真时,模型更新之间的间隔(毫秒)。默认值是 1000。
另请参阅 MonitorModel::running。
maximumCount : int |
MonitorModel 保留的最大行数。一旦达到此限制,最旧的行开始被丢弃以为新行腾出空间。
running : bool |
当为真时,MonitorModel 将每隔 MonitorModel::interval 毫秒探测其数据源并添加新行。默认值是 false
。
通常您只在该属性设置为 true 时显示数据。
另请参阅 MonitorModel::interval。
方法文档
clear() |
清空模型,删除所有现有行。
另请参阅 MonitorModel::count。
© 2024 The Qt Company Ltd。此处包含的文档贡献的版权归其所有者所有。此处提供的文档是根据 Free Software Foundation 发布的 GNU 自由文档许可证版本 1.3 的条款许可的。Qt 和相关标志是 The Qt Company Ltd. 在芬兰和/或全球其他国家的商标。所有其他商标都是其各自所有者的财产。