wxpython 在执行的时候报错

原创 2013年12月06日 10:19:25

在执行一个wxpython的时候报错

Traceback (most recent call last):

  File "C:\Users\quan\Desktop\wx16.py", line 145, in <module>
    frame = Frame(None)
  File "C:\Users\quan\Desktop\wx16.py", line 18, in __init__
    self.createMenuBar()
  File "C:\Users\quan\Desktop\wx16.py", line 45, in createMenuBar
    menuBar.Append(self.createMenu(menuItem),menuLabel)
  File "C:\Users\quan\Desktop\wx16.py", line 57, in createMenu
    self.Bind(wx.EVT_MENU,eachHandler,menu)
  File "C:\Python27\lib\site-packages\wx-2.8-msw-unicode\wx\_core.py", line 3918, in Bind
    assert source is None or hasattr(source, 'GetId')

AssertionError


下面是有报错的原因和解决的方法

#!/usr/bin/python 
#coding:utf8


import wx

#实例化窗口
class Frame(wx.Frame):
    def __init__(self, parent):
        # 实例话窗口
        wx.Frame.__init__(self,parent,-1,'open file',size=(500,500))
        #创建面板
        self.panel = wx.Panel(self,-1)        # 设置背景的颜色
        self.panel.SetBackgroundColour('White')
        #绑定退出按钮
        self.Bind(wx.EVT_CLOSE,self.OnCloseWindow)
        #创建菜单栏
        self.createMenuBar()
        #创建按钮
        self.createButton()
        #创建文本
        self.createText()
    

    def menuData(self):
        _dict = {
            u'文件': (('打开',u'open',self.onOpen),
                     (u'关闭',u'quit',self.OnCloseWindow),
                     (u'查看',u'look',self.onLook)),

            u'编辑': (('复制',u'copy',self.onCopy),
                     (u'剪切',u'cut',self.onCut),
                     (u'粘贴',u'paste',self.onPaste),
                     (u'',u'',''),
                     (u'浏览',u'browse',self.onBrowse))
        }

        return _dict
    def createMenuBar(self):
        # 创建菜单栏
        menuBar = wx.MenuBar()
        for eachMenuBar in self.menuData():
            menuLabel = eachMenuBar
            menuItem = self.menuData()[eachMenuBar]
            menuBar.Append(self.createMenu(menuItem),menuLabel)
        self.SetMenuBar(menuBar)

    # 创建子菜单栏
    def createMenu(self,menuItem):
        menu = wx.Menu()
        print len(menuItem)
        for eachLabel,eachStatus,eachHandler in menuItem:
            if not eachLabel:
                menu.AppendSeparator()
                continue
            #报错时候的写法
            ####################################
            # menu.Append(-1,eachLabel,eachStatus)
            # self.Bind(wx.EVT_MENU,eachHandler,menu)
            ####################################
            # 正确的写法(绑定时候子菜单的时候要的是返回值才是正确的,绑定menu这个就会一直报错)
            ####################################
            menuButton = menu.Append(-1,eachLabel,eachStatus)
            self.Bind(wx.EVT_MENU,eachHandler,menuButton)
            ####################################

        return menu


    def createButton(self):
        pass

    def createText(self):
        pass

    def OnCloseWindow(self,event):
        self.Destroy()




    # 下面是事件驱动
    def onOpen(self,event):
        print 'ssssssssss'

    def onQuit(self,event):
        pass

    def onLook(self,event):
        pass

    def onCopy(self,event):
        pass

    def onCut(self,event):
        pass

    def onPaste(self,event):
        pass

    def onBrowse(self,event):
        pass



if __name__ == '__main__':
    app = wx.PySimpleApp()
    frame = Frame(None)
    frame.Show()
    app.MainLoop()
            



















相关文章推荐

wxpython一些最常见的错误现象及解决方法

2.8 一些最常见的错误现象及解决方法? 有一些错误它们可能会发生在你的wxPython应用程序对象或初始的顶级窗口在创建时,这些错误可能是很难诊断的。下面我们列出一些最常见的错误现象及解决方法...
  • gzh0222
  • gzh0222
  • 2013年08月28日 20:20
  • 1391

myeclipse用svn提交的时候报错

  • 2011年10月16日 11:53
  • 575B
  • 下载

SONObject jsonObject=JSONObject.fromObject(map) 执行到这的时候没有任何反应,并且不报错

导入解析json数据需要的包

安装11.2.0.1的时候执行root.sh报错

安装11.2.0.1的时候报错: [root@rac1 ~]# /u01/app/11.2.0/grid/root.sh Running Oracle 11g root.sh script... T...

mac电脑安装wxPython2.8.12.1不成功怎么办,报错:Could not find a version that satisfies the requirement 2.8.12.1 (f

目的:robotframe-ride用于接口测试 遇到的问题: 1.mac终端pip安装robotframework-ride后 pip install robotframework-r...
  • TZJD89
  • TZJD89
  • 2017年06月04日 11:26
  • 1792

SQL 语句之insert语句插入数据;若表中有重复的主键或数据插入的时候要求不能报错

已知条件:MySQL数据库 存在一张表,表名为teacher,主键为id,表中有4行数据select * from teacher;要求:要求使用数据库插入语句往表中插入数据,若需要插入表中的数据(...

开发网页程序的时候,JS经常报错该如何处理?

做网页的时候,JS一段没有写好的时候,老是会出错,弹出的窗口又难看,而且在IE里面,还死活找不到位置。。。因为IE的报错信息位置不准确,再加上,有时候一段网页是专门为IE写的,用FF或者OPERA就会...

H5引擎使用的时候,自动构建的gulp报错的解决办法

Linux下gulp报错Error:watch ENOSPC如何解决 来源:黑云一键重装系统    发布时间:2016-03-03 10:35:59   用户反...

linux进行make menuconfig时候报错的解决办法

busybox 运行 make menuconfig时候报错的解决办法!!!2010-11-27 12:14[jiangwei@localhost makerom]$ make bbcfgBeginn...
  • xu_guo
  • xu_guo
  • 2011年03月15日 11:27
  • 988

使用Quartz任务调用的时候报错Based on configured schedule, the given trigger will never fire.

前段时间使用Spring整合Quartz定时任务调度框架做了一个定时定频率发送邮件功能,当时测试的时候的正常运行,今天重新启动项目,项目居然无法重新启动,去控制台看了异常信息: 21:53:...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:wxpython 在执行的时候报错
举报原因:
原因补充:

(最多只允许输入30个字)