Python GTK3工具栏加速器不起作用
发布时间:2020-12-20 13:41:19 所属栏目:Python 来源:网络整理
导读:我正在关注 Python GTK+ 3 Tutorial,我为工具栏操作添加的加速器不起作用.这是一个显示问题的程序,大致基于该教程.有一个带有N快捷键的菜单操作和带有X快捷键的工具栏操作.菜单操作的shorcut工作,工具栏操作没有,即使操作创建相同. from gi.repository impor
我正在关注
Python GTK+ 3 Tutorial,我为工具栏操作添加的加速器不起作用.这是一个显示问题的程序,大致基于该教程.有一个带有N快捷键的菜单操作和带有X快捷键的工具栏操作.菜单操作的shorcut工作,工具栏操作没有,即使操作创建相同.
from gi.repository import Gtk UI_INFO = """ <ui> <menubar name='TestMenubar'> <menu action='FileMenu'> <menuitem action='MenuAction' /> </menu> </menubar> <toolbar name='TestToolbar'> <toolitem action='ToolbarAction' /> </toolbar> </ui> """ class MyWindow(Gtk.Window): def __init__(self): Gtk.Window.__init__(self,title="Test") self.set_default_size(200,100) action_group = Gtk.ActionGroup(name="test_actions") self.add_menu_action(action_group) self.add_toolbar_action(action_group) uimanager = self.create_ui_manager() uimanager.insert_action_group(action_group) box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL) menubar = uimanager.get_widget("/TestMenubar") box.pack_start(menubar,False,0) toolbar = uimanager.get_widget("/TestToolbar") box.pack_start(toolbar,0) self.add(box) def add_menu_action(self,action_group): action_filemenu = Gtk.Action(name="FileMenu",label="File") action_group.add_action(action_filemenu) action = Gtk.Action(name='MenuAction',label="Menu action",stock_id=Gtk.STOCK_NEW) action.connect('activate',self.on_menu_action) action_group.add_action_with_accel(action,'N') def add_toolbar_action(self,action_group): action = Gtk.Action(name='ToolbarAction',label="Press me",stock_id=Gtk.STOCK_MEDIA_STOP) action.connect('activate',self.on_toolbar_action) action_group.add_action_with_accel(action,'X') def on_menu_action(self,widget): print 'Menu action' def on_toolbar_action(self,widget): print 'Toolbar action' def create_ui_manager(self): uimanager = Gtk.UIManager() uimanager.add_ui_from_string(UI_INFO) self.add_accel_group(uimanager.get_accel_group()) return uimanager window = MyWindow() window.connect("delete-event",Gtk.main_quit) window.show_all() Gtk.main() 如何按下X快捷键调用回调? (reference for GTK+ 3说add_action_with_accel已被弃用,所以肯定有更好的方法来创建加速器,但是文档没有显示方式,我找不到更好的教程.) 解决方法
面对同样的问题.我在gekit插件
here的gtk 3编程上提出了类似的问题.我发现菜单栏快捷方式是唯一可行的.因此,只需介绍一个菜单项,它完全符合您的工具项.保留工具项以便为用户提供灵活性,但不要为其指定任何快捷方式.即add_action,而不是add_action_with_accel就足以将其添加到操作组.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |