使 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)
是关键。
我无法获取鼠标的位置。我想在鼠标所在的位置显示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)
是关键。