python-3.x - 向 GIo.Menu 添加键盘快捷键

标签 python-3.x keyboard-shortcuts gtk3 gio

我正在尝试将 accelgroup(键盘快捷键)添加到 Gio.Menu 项。 但我还没有找到办法做到这一点。就像在这个例子中,我想用 <Ctrl>+o 打开文件

filemenu = Gio.Menu()
filemenu.append("Open","win.open")

accelgroup=Gtk.AccelGroup()
self.add_accel_group(accelgroup)

# Open menu
open_action = Gio.SimpleAction(name="open")
# this line is problematic
open_action.add_accelerator("activate". Gdk._keyval_from_name("O"))
open_action.connect("activate", self.MenuElem.file_open_clicked)
self.add_action(open_action)

我该怎么做?

最佳答案

您不需要将键绑定(bind)添加到 Gio.Action 本身,而是将它们添加到小部件或应用程序中,例如:

app = # My Gtk.Application instance
window = # My Gtk.ApplicationWindow instance
action = Gio.SimpleAction.new('open', None)

window.add_action(action)
app.add_accelerator('<Primary>o', 'win.open', None)
# The 'win.' prefix is because it was added to a Gtk.ApplicationWindow

关于python-3.x - 向 GIo.Menu 添加键盘快捷键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38623807/

相关文章:

python - Pandas 对行进行序列字符串匹配并获取最佳匹配行 ID

python - 打印到(并覆盖)状态指示器的同一行

c#-4.0 - 如何为快捷键实现键盘处理程序 cefSharp

gotk3,带有自定义小部件的笔记本附加页面并将其取回

python - 如何在与我的程序相同的文件夹中播放音乐(Python)

visual-studio-2008 - Visual Studio 2008 显示成员的键盘快捷键?

language-agnostic - 一些捷径组合的历史渊源

compiler-errors - 如何解决此包含错误? gdk文件应该在其中

gtk - 如何在 Cairo 表面(内部)上显示 Gtk Widget?

python - 按键分组并创建相应值的列表