微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决使 Fyne 弹出菜单出现在鼠标位置

我一直在获取鼠标的位置。我想在鼠标位置显示 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 Position 放置在上述位置。但我不知道从哪里可以获得鼠标/光标位置。

这样弹出窗口总是卡在应用的左上角

解决方法

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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。