有没有一种方法可以捕获窗口中的按键按下和按键事件?我知道C.weight.data = sp_T
是可能的,但是它是整个widget.Entry
还是fyne.Window
之类的小部件,因此我可以将其用作全局容器? / p>
我还知道可以通过执行widget.Group
之类的操作来捕获按键事件,但这不是我想要的。我正在寻找一种方法来知道何时按下特定键以及何时释放该键。
答案 0 :(得分:2)
按键向上和向下事件是桌面特定的扩展,因此应谨慎使用。在尝试使用画布的桌面版本之前,必须确保该应用程序作为桌面应用程序运行。
如您所见,首先检查窗口画布是否可用,然后要求在桌面按键事件上得到通知。
if deskCanvas, ok := w.Canvas().(desktop.Canvas); ok {
deskCanvas.SetOnKeyDown(func(key *fyne.KeyEvent) {
log.Println("Desktop key down", key)
})
deskCanvas.SetOnKeyUp(func(key *fyne.KeyEvent) {
log.Println("Desktop key up", key)
})
}
如果在移动设备上运行,则将被忽略,因此请确保您的应用程序可以正常运行而无需在移动设备上运行。