我在获取鼠标位置时卡住了。我想在鼠标的位置显示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()
我希望在上述位置将鼠标位置作为fne位置。但是我不知道从哪里可以得到鼠标/光标的位置。
这样弹出窗口就会一直停留在应用程序的左上角。
将PointEvent
传递到实现与交互有关的接口的方法中。按钮OnTapped
隐藏了这些细节,因为它们通常不需要。
正如在一些评论中建议的那样,您应该像fyne_demo中的按钮一样扩展您想要响应此内容的小部件:https://github.com/fyne-io/fyne/blob/c29a0624ed96ba1b8f45d903b6941824d50e0502/cmd/fyne_demo/tutorials/widget.go#L359
实施Tapped(e *fyne.PointEvent)
是关键。