代码之家  ›  专栏  ›  技术社区  ›  Ä°brahim

QML-如何使用GridView::itemAt(实x,实y)?

  •  0
  • Ä°brahim  · 技术社区  · 6 年前

    我可以得到 Repeater 这样地:

    var item = repeater.itemAt(index);
    

    但我怎样才能得到 GridView ? 我看到了 itemAt function . 但它与 itemAt 属于 中继器 . 它想要 x y 坐标,但我们可以在 网格视图 喜欢 中继器 . 如何访问该项目?

    编辑:

    gridView.currentIndex = index;
    var a = gridView.currentItem;
    gridView.currentIndex = lastIndex;
    var b = gridView.currentItem;
    if (a.imageSource === b.imageSource) console.log('Equals!');
    

    我总是看到 Equals! 输出但它们(图像)并不相等(a有1.png,b有2.png)。

    1 回复  |  直到 6 年前
        1
  •  1
  •   xander    6 年前

    似乎没有内置功能,但您可以尝试以下方法:

    gridView.currentIndex = index; // your index
    var item = gridView.currentItem;
    
    // reset the current index to the previous value if you have to
    

    也许这也会起作用(未测试):

    var item = gridView.children[index];
    

    这更像是一种变通方法,但在你的情况下应该是可行的。