使 Fyne 弹出菜单出现在鼠标位置

Make Fyne popup menu appear at mouse position

我无法获取鼠标的位置。我想在鼠标所在的位置显示Fyne弹出菜单但是弄不明白

以下是我使用弹出窗口的方式:

menuItem1 := fyne.NewMenuItem("A", nil)
menuItem2 := fyne.NewMenuItem("B", nil)
menuItem3 := fyne.NewMenuItem("C", nil)
menu := fyne.NewMenu("File", menuItem1, menuItem2, menuItem3)

popUpMenu := widget.NewPopUpMenu(menu, window.Canvas())

popUpMenu.ShowAtPosition(*Expect mouse position here*)
popUpMenu.Show()

我希望在上述位置将鼠标位置作为 Fyne 位置。但是我不知道从哪里可以得到 mouse/cursor 位置。

这样弹出窗口总是固定在应用程序的左上角。

PointEvent 被传递到实现接口的方法中以进行交互。按钮 OnTapped 隐藏了这些细节,因为它们通常不需要。

正如一些评论中所建议的那样,您应该像 fyne_demo 中的按钮一样扩展您想要响应的小部件围绕这一行:https://github.com/fyne-io/fyne/blob/c29a0624ed96ba1b8f45d903b6941824d50e0502/cmd/fyne_demo/tutorials/widget.go#L359

实施Tapped(e *fyne.PointEvent)是关键。