geekdoc-python-zh/docs/pythonlibrary/the-new-shortcuteditor-for-...

2.5 KiB
Raw Permalink Blame History

wxPython 的新快捷编辑器

原文:https://www.blog.pythonlibrary.org/2012/06/23/the-new-shortcuteditor-for-wxpython/

我本打算在读到它的一周内写一篇文章但后来事情变得很忙我就忘了。总之wxPython 工具包中有一个新的小部件,叫做 ShortcutEditor。你可以在 wxPython 邮件列表上读到它。除非你经常从 SVN 出差,否则你可能需要更新本地驱动器上的 agw lib 文件夹。它也可能包含在最新的凤凰版本中,但我不确定。如果您想检查它,请在命令行上执行以下操作(假设您已经安装了 svn)

svn checkout http://svn.wxwidgets.org/svn/wx/wxPython/3rdParty/AGW/agw/

这将在你当前的目录下创建一个“agw”文件夹。您会希望将它复制到 wxPython 安装中的文件之上。在我的机器上,它位于以下位置:C:\ python 27 \ Lib \ site-packages \ wx-2 . 9 . 3-MSW \ wx \ Lib源代码中包含了一个简单的演示应用程序。我在这里复制它,所以你也可以试着运行它:


import wx
import wx.lib.agw.shortcuteditor as SE

class MyFrame(wx.Frame):

    def __init__(self, parent):

        wx.Frame.__init__(self, parent, -1, "ShortcutEditor Demo") 

        bar = wx.MenuBar()
        menu = wx.Menu()

        menu.Append(101, "&Mercury", "This the text in the Statusbar")
        menu.Append(102, "&Venus", "")
        menu.Append(103, "&Earth", "You may select Earth too")
        menu.AppendSeparator()
        menu.Append(104, "&Close", "Close this frame")

        bar.Append(menu, 'File')
        self.SetMenuBar(bar)

        dlg = SE.ShortcutEditor(self)
        dlg.FromMenuBar(self)

        if dlg.ShowModal() == wx.ID_OK:
            # Changes accepted, send back the new shortcuts to the TLW wx.MenuBar
            dlg.ToMenuBar(self)

        dlg.Destroy()

# our normal wxApp-derived class, as usual

app = wx.App(0)

frame = MyFrame(None)
app.SetTopWindow(frame)
frame.Show()

app.MainLoop()

如果您运行上面的代码,您应该会在屏幕上看到类似这样的内容:

然后就可以开始换快捷键了。我觉得这很酷。根据该文件的内部文档,它可以更改菜单快捷键和加速器表。你应该找个时间试一试。我认为这将是一个非常有用的工具,可以添加到我自己的脚本中。