繁体   English   中英

中继器模型可以执行JAVASCRIPT吗?

[英]Can Repeater Model execute JAVASCRIPT?

我在QML中有一个XmlListModel

XmlListModel {
 id: model
 source: "qrc:/Config/myConfig.xml"
 query: "/levels/level"
 XmlRole { name: "levName"; query: "@levName/string()" }
 XmlRole { name: "from"; query: "from/number()" }
 XmlRole { name: "to"; query: "to/number()" }
}

读取此XML文件

<levels parId = "3">
 <level levelName = "level1">
  <from>0</from>
  <to>1</to
 </level>
 <level levelName = "level2">
  <from>1</from>
  <to>2</to>
 </level>
</levels>

我也有一个text元素:

Text {
    id: myText
    x: 0; y:0
    text: ""
}

我需要遍历XmlListModel ,以便根据在myList.get(3).value找到的内容为myText.text分配正确的级别,其中myListListModel

例:
如果myList.get(3).value0 (包括)和1 (排除)之间,我必须设置myText.text = "level1" ,如果它在1 (包括)和2 (排除)之间,则必须设置myText.text = "level2" ,依此类推...

有什么建议吗?

不幸的是,您不能像give me the value, where x is between role from and role to那样在O(1)查询XmlListModel give me the value, where x is between role from and role to

对您有好处,您有一个有序列表,因此可以在XmlListModel上执行二进制搜索。 该算法基本上是这样的:

首先,请检查您的搜索值是否恰好是中间的那个。 如果较小,则在下半部分的中间搜索,如果较大,则在上半部分的搜索...依此类推。
这样,您可以在O(log n)中找到您的值,其中nXmlListModel的条目数。
https://zh.wikipedia.org/wiki/Binary_search_algorithm

如果已实现此功能,则可以在模型上工作-使用JavaScript或C ++或Python ...,您可以像这样:

Text {
    text: binarySearch(model, myList.get(3).value).levName
}

当您实现此算法时,请确保处理差距。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM