捕获按键按下/按下事件

时间:2020-04-16 17:36:49

标签: go events fyne

有没有一种方法可以捕获窗口中的按键按下和按键事件?我知道C.weight.data = sp_T是可能的,但是它是整个widget.Entry还是fyne.Window之类的小部件,因此我可以将其用作全局容器? / p>

我还知道可以通过执行widget.Group之类的操作来捕获按键事件,但这不是我想要的。我正在寻找一种方法来知道何时按下特定键以及何时释放该键。

1 个答案:

答案 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)
        })
    }

如果在移动设备上运行,则将被忽略,因此请确保您的应用程序可以正常运行而无需在移动设备上运行。