Serious wxPython Error while executing..

K

kath

Hello, sorry about the lengthy message.

I finding difficult to execute this program. The wx.Notebook i created
is coming on the splitted frame(self.p2). How do I that. I am started
to learn wxPython, and when I run the code, the code doesnot close
gracefully, it throughs me an error.

"pythonw.exe has encountered a problem and needs to close. We are
sorry for the inconvenience"

I clicked for more information, then I got the error message which is

"AppName: pythonw.exe AppVer: 0.0.0.0 ModName: wxmsw26uh_vc.dll
ModVer: 2.6.3.3 Offset: 0016bb6f
<?xml version="1.0" encoding="UTF-16"?>
<DATABASE>
<EXE NAME="pythonw.exe" FILTER="GRABMI_FILTER_PRIVACY">
<MATCHING_FILE NAME="MSVCRT.dll" SIZE="290869"
CHECKSUM="0x46EE5D1C" BIN_FILE_VERSION="6.1.9359.0"

BIN_PRODUCT_VERSION="6.1.9359.0" PRODUCT_VERSION="6.10.9359.0"
FILE_DESCRIPTION="Microsoft (R) C Runtime Library"

COMPANY_NAME="Microsoft Corporation" PRODUCT_NAME="Microsoft (R) Visual
C++" FILE_VERSION="6.10.9359.0"

ORIGINAL_FILENAME="MSVCRT.DLL" INTERNAL_NAME="MSVCRT.DLL"
LEGAL_COPYRIGHT="Copyright (C) Microsoft Corp. 1981-1999"

VERFILEDATEHI="0x0" VERFILEDATELO="0x0" VERFILEOS="0x40004"
VERFILETYPE="0x2" MODULE_TYPE="WIN32" PE_CHECKSUM="0x48405"

LINKER_VERSION="0x0" UPTO_BIN_FILE_VERSION="6.1.9359.0"
UPTO_BIN_PRODUCT_VERSION="6.1.9359.0" LINK_DATE="09/20/2001 21:52:56"

UPTO_LINK_DATE="09/20/2001 21:52:56" VER_LANGUAGE="English (United
States) [0x409]" />
..............."

here is the code.... seems a bit lengthy, sorry about that.
Please help me to find my mistake, and how do I go forward resolving
this problem.

Code:
import wx

ID_ADD_NEW = 5001
ID_DEACTIVATE = 5002
ID_EXIT = 5003

class _AddNewFund(wx.Panel):
    def __init__(self, parent):
        wx.Panel.__init__(self, parent)
        box=wx.StaticBox(self, -1, "Add New Fund")
        boxsizer=wx.StaticBoxSizer(box, wx.HORIZONTAL)

        t=wx.StaticText(self, -1, "Please select an Excel file to
upload new funds.", (20,20))
        boxsizer.Add(t, 0, wx.TOP|wx.LEFT, 10)
        t=wx.StaticText(self, -1, "This is page one content2", (20,40))
        boxsizer.Add(t, 0, wx.TOP|wx.LEFT, 10)

        self.text1=wx.TextCtrl(self, -1, "")

        b1 = wx.Button(self, 10, " Browse ")
        b2 = wx.Button(self, 10, " Upload ", (60, 20))
        self.Bind(wx.EVT_BUTTON, self.OnBrowse, b1)
        self.Bind(wx.EVT_BUTTON, self.OnUpload, b2)
        b1.SetDefault()
        b1.SetSize(b1.GetBestSize())
        b2.SetSize(b2.GetBestSize())

        grid1=wx.FlexGridSizer(0,2,0,0)
        grid1.Add( self.text1, 0,
wx.ALIGN_CENTRE|wx.LEFT|wx.RIGHT|wx.TOP, 5 )
        grid1.Add( b1, 0, wx.ALIGN_CENTRE|wx.LEFT|wx.RIGHT|wx.TOP, 5 )
        #grid1.Add( b2, 0, wx.ALIGN_CENTRE|wx.LEFT|wx.RIGHT|wx.TOP, 5 )
        border=wx.BoxSizer()
        border.Add(boxsizer, 1, wx.EXPAND)
        self.SetSizer(border)
        boxsizer.Add(grid1, 0, wx.ALIGN_CENTRE)
        border.Add(boxsizer, 0, wx.ALIGN_CENTRE)
        #print "end ADD NEW class"

    def OnBrowse(self, event):
        self.dirname=""
        d=wx.FileDialog(self, "Choose a file", self.dirname, "", "*.*",
wx.Open)
        if d.ShowModal() == wx.ID_OK:
            self.filename=d.GetFilename()
            self.dirname=d.GetDirectory()
            self.text1.WriteTest(join(os.path.join(self.dirname,
self.filename)))
        d.Destroy()

    def OnUpload(self, event):
        pass

class ParentWindow(wx.Frame):
    def __init__(self):
        wx.Frame.__init__(self, None, -1, "Euro Fund manager")
        self.createMenu()
        self.Bind(wx.EVT_MENU, self.onAddnewfund, id=ID_ADD_NEW)
        self.Bind(wx.EVT_MENU, self.onDeactivate, id=ID_DEACTIVATE)
        self.Bind(wx.EVT_MENU, self.onExit, id=ID_EXIT)
        self.spw=wx.SplitterWindow(self)
        self.p1=wx.Panel(self.spw, style=wx.BORDER_NONE)
        self.p1.SetBackgroundColour("white")
        self.p2=wx.Panel(self.spw, style=wx.BORDER_NONE)

        self.spw.SplitVertically(self.p1, self.p2, 200)

        self.CreateStatusBar()

    def createMenu(self):
        menu=wx.Menu()
        menu.Append(ID_ADD_NEW, "&Add new fund(s)", "Add new fund(s)")
        menu.Append(ID_DEACTIVATE, "&Deactivate fund(s)", "Deactivate
fund(s)")
        menu.AppendSeparator()
        menu.Append(ID_EXIT, "E&xit", "Exit")

        menubar=wx.MenuBar()
        menubar.Append(menu, "&File")
        self.SetMenuBar(menubar)

    def onAddnewfund(self, event):
        #p=wx.Panel(self.p2)
        #print "panel created"
        nb=wx.Notebook(self.p2)
        #print "notebook created"
        addPage=_AddNewFund(nb)
        nb.AddPage(addPage, "Add new Fund")
        #print "page got added"
        sizer=wx.BoxSizer()
        sizer.Add(nb, 1, wx.EXPAND)
        self.p2.SetSizer(sizer)
        #print "end of add function"

    def onDeactivate(self, event): pass

    def onExit(self, event):
        self.Close()


app = wx.App()
frm=ParentWindow()
frm.SetSize((800,500))
frm.Show()
app.SetTopWindow(frm)
app.MainLoop()



thank you,
Regards,
kath
 
P

Paul McNett

kath said:
Hello, sorry about the lengthy message.

I finding difficult to execute this program. The wx.Notebook i created
is coming on the splitted frame(self.p2). How do I that. I am started
to learn wxPython, and when I run the code, the code doesnot close
gracefully, it throughs me an error.

"pythonw.exe has encountered a problem and needs to close. We are
sorry for the inconvenience"

I get a segmentation fault on Linux, after running the script, choosing
"Add new fund" from the menu, and then closing the application. I don't
get the segmentation fault if I merely start the app and close it.
here is the code.... seems a bit lengthy, sorry about that.
Please help me to find my mistake, and how do I go forward resolving
this problem.

You actually have several problems. But, the segmentation fault appears
to be directly related to the fact that you add boxsizer to the border
sizer twice.

Another problem is that you create the notebook every single time, and
add just one page to it, but you probably want just one notebook with
one or more pages.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,017
Latest member
GreenAcreCBDGummiesReview

Latest Threads

Top