0

インポートされた関数にイベントをバインドするにはどうすればよいですか?

import menuFunctions
import wx
import wx.lib.agw.aui as aui

class MyFrame(wx.Frame):
  def __init__(self, parent, id=-1, title='title', pos=wx.DefaultPosition, size=(800, 600),     style=wx.DEFAULT_FRAME_STYLE):
    wx.Frame.__init__(self, parent, id, title, pos, size, style)
    self._mgr = aui.AuiManager(self)

    self.Bind(wx.EVT_CLOSE, menuFunctions.onClose)

困っている最後の行です

ご挨拶

4

1 に答える 1

0

さて、これを行う1つの方法があります。これは、メニュー コードを含むファイルです。

# impMenu.py

import wx

#----------------------------------------------------------------------
def menu(self):
    """"""
    menuBar = wx.MenuBar()
    fileMenu = wx.Menu()
    exitMenuItem = fileMenu.Append(wx.NewId(), "Exit",
                                   "Exit the application")
    menuBar.Append(fileMenu, "&File")

    menuItems = [(exitMenuItem, "onExit")]

    return (menuBar, menuItems)

メインのプログラム コードは次のとおりです。

import impMenu
import wx

########################################################################
class MyFrame(wx.Frame):
    """"""

    #----------------------------------------------------------------------
    def __init__(self):
        """Constructor"""
        wx.Frame.__init__(self, None, title="Menu Test")
        panel = wx.Panel(self)

        menubar, menuItems = impMenu.menu(self)

        for item in menuItems:
            self.Bind(wx.EVT_MENU, getattr(self, item[1]), item[0])

        self.SetMenuBar(menubar)

    #----------------------------------------------------------------------
    def onExit(self, event):
        """"""
        print "in onExit!"

if __name__ == "__main__":
    app = wx.App(False)
    frame = MyFrame()
    frame.Show()
    app.MainLoop()
于 2013-02-06T23:00:33.333 に答える