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()
            



















windows下wxPython开发环境安装与配置

安装文件准备: 安装文件 下载地址 python-2.6.2.msi http://www.python.org/download/ wxPython2.8-...
  • u012241831
  • u012241831
  • 2015年04月06日 21:34
  • 1380

安装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...
  • ghostliming
  • ghostliming
  • 2016年01月10日 23:11
  • 2353

使用Hive-JDBC遇到的一些问题解决

1.java.lang.NoClassDefFoundError: org/apache/hive/service/cli/thrift/TCLIService$Iface 使用JDBC驱动连接到hi...
  • u010429286
  • u010429286
  • 2017年12月12日 11:23
  • 196

wxPython控件大全

Python GUI之wxPython控件详细介绍,总结的太全面了...
  • shaxiaozilove
  • shaxiaozilove
  • 2016年06月11日 20:58
  • 3211

wxpython,窗口,控件,事件

介绍一个python的图形化界面,wxpython。        wxpython是Python语言对流行的wxWidgets跨平台GUI工具库的绑定。而wxWidgets是用C++语言写成的。  ...
  • HCodeRunner
  • HCodeRunner
  • 2017年02月05日 15:43
  • 508

最简单的wxPython的界面设计

[python] view plaincopy #!/bin/env python   # -*- coding: utf-8 -*-       ########...
  • yangbingzhou
  • yangbingzhou
  • 2015年03月05日 15:37
  • 1224

wxPython布局管理

一个典型的应用程序是由不同的部件。这些小部件被放进容器部件。一个程序员必须管理应用程序的布局。这不是一项容易的任务。在wxPython我们有两个选择。 *absolute positioning...
  • ztsghjls
  • ztsghjls
  • 2017年01月14日 13:06
  • 315

mac 安装robotFramwork环境 以及wxPython 无法安装问题解决

mac上装robotFramwork mac 安装wxPython 解决wxPython无法安装的问题
  • xubeiqiannian
  • xubeiqiannian
  • 2016年05月31日 22:54
  • 4408

使用wxpython开发windows界面

1,需求需要给运营童鞋开发一个桌面客户端程序。 不想使用java开发,启动慢,客户端程序大。开发难度大,会SWING的人少。 于是使用wxPython开发,开发调试开发速度非常快。 但是在win...
  • freewebsys
  • freewebsys
  • 2015年11月19日 22:12
  • 3922

wxpython给框架添加窗口部件(一)

# -*- coding: utf-8 -*- import wx class Frame_01(wx.Frame): def __init__(self): wx.Fram...
  • septwolves2015
  • septwolves2015
  • 2016年11月17日 10:32
  • 415
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:wxpython 在执行的时候报错
举报原因:
原因补充:

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