mvc.py 文件源码

python
阅读 26 收藏 0 点赞 0 评论 0

项目:fritzchecksum 作者: mementum 项目源码 文件源码
def _bindfuncs(self):
    # wx classes throw exception if getmember is applied to the instance (self)
    methods = inspect.getmembers(self.__class__, inspect.ismethod)
    for mname, method in methods:
        dynbindings = getattr(method, '_dynbinding', None)
        if dynbindings is None:
            continue
        for dynbinding in dynbindings:
            if dynbinding:
                eventname, widgetprefix, widgetname = dynbinding
                event = getattr(wx, eventname, None)
                if event is None:
                    print 'Method', mname
                    print 'Failed to find eventname', eventname
                    continue

                name = 'm_' + widgetprefix.lower() + widgetname.lower()
                widget = None
                for attrname in dir(self):
                    if attrname.lower() == name:
                        widget = getattr(self, attrname)
                        break

                if not widget:
                    print 'Method', mname
                    print 'Failed to find widget', name
                    continue

                boundmethod = method.__get__(self, self.__class__)
                self._dynbindings.append((widget, event, boundmethod))
                if event in [wx.EVT_MENU, wx.EVT_TOOL]:
                    self.Bind(event, boundmethod, id=widget.GetId())
                elif event in [wx.EVT_SIZE]:
                    self.Bind(event, boundmethod)
                else:
                    widget.Bind(event, boundmethod)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号