计算机学习

您现在的位置是:首页 > fyne > 正文

fyne

为应用添加快捷方式

hhb2022-04-05fyne128
一在Canvas注册

一 在Canvas注册

有许多已定义的标准快捷键(如fyne.ShortcutCopy),它们连接到标准的键盘快捷键和右键菜单。 添加新快捷方式的第一步是定义快捷方式。  

大多数情况下,都是一个键盘触发的快捷方式,这是一个桌面扩展。

  •  为此,我们使用桌面desktop.CustomShortcut例如,使用Tab键和Control修饰符,你可以这样做:  

ctrlTab := desktop.CustomShortcut{KeyName: fyne.KeyTab, Modifier: desktop.ControlModifier}

请注意,这个快捷方式可以被重用,所以您也可以将它附加到菜单或其他项目。 在这个例子中,我们希望它总是可用的,所以我们将它注册到窗口的Canvas中,如下所示:  

ctrlTab := desktop.CustomShortcut{KeyName: fyne.KeyTab, Modifier: desktop.ControlModifier}
w.Canvas().AddShortcut(&ctrlTab, func (shortcut fyne.Shortcut) {
   log.Println("We tapped Ctrl+Tab")
})

正如你所看到的,以这种方式注册一个快捷方式有两个部分——传递快捷方式定义和一个回调函数。 如果用户键入键盘快捷键,那么函数将被调用并输出。  

二 向Entry添加快捷方式

对于一个快捷方式仅应用在当前获得焦点的项目上,它也是非常有用这种方法可以用于任何可聚焦的小部件,并通过扩展小部件和添加TypedShortcut处理程序来管理  

type myEntry struct {
   widget.Entry
}

func (m *myEntry) TypedShortcut(s fyne.Shortcut) {
   if _, ok := s.(*desktop.CustomShortcut); !ok {
      m.Entry.TypedShortcut(s)
      return
   }

   log.Println("Shortcut typed:", s)
}

从上面的摘录中,您可以看到TypedShortcut处理程序是如何实现的。  在这个函数中,你应该检查快捷方式是否属于之前使用的自定义类型  

如果是标准的快捷方式,那么最好调用原始的快捷方式处理程序(如果小部件有) 。 完成这些检查后,您可以将快捷方式与您正在处理的各种类型进行比较(如果有多个)。  


发表评论

评论列表

  • 这篇文章还没有收到评论,赶紧来抢沙发吧~