获取TreeView中指针的行/单元格



如何找到GtkTreeView中光标所在的行或单元格?

我试过了:

screen, _ := tv.Widget.GetScreen()
display, _ := screen.GetDisplay()
seat, _ := display.GetDefaultSeat()
device, _ := seat.GetPointer()
window, _ := tv.GetWindow()
_, x, y, _ := window.GetDevicePosition(device)
tx, ty := -1, -1
tv.ConvertBinWindowToTreeCoords(x, y, &tx, &ty)
_, _, row, _, rowExists := tv.GetPathAtPos(tx, ty)

ConvertBinWindowToTreeCoords将设备位置(这似乎是合理的(转换为巨大的负数(!?(。所有这些位置/坐标周围的文档都非常模糊,不知道它们到底使用了哪个坐标(例如,它是如何与ScrollWindows交互的(。即使是CoordsPosPosition之间的命名法在我看来也相当虚假

有人知道这是怎么回事吗?

原来要简单得多。

motion := gdk.EventMotionNewFromEvent(event)
x, y := motion.MotionVal()
path, _, _, _, rowExists := tv.GetPathAtPos(int(x), int(y))
if !rowExists {
return true
}
return true

使用row是我的误解,因为它实际上意味着缩进级别。因此,实际索引被保存在path中。

相关内容

  • 没有找到相关文章