python - wxpython FileDialog open crashes program in windows xp -
i'm trying put simple filedialog application. here's simple example: frame has 1 button , 1 statictext. after button clicking open file dialog appears. when user choose file - it's path , name loaded statictext label:
frame1.py:
#boa:frame:frame1 import wx def create(parent): return frame1(parent) [wxid_frame1, wxid_frame1button1, wxid_frame1statictext1, ] = [wx.newid() _init_ctrls in range(3)] class frame1(wx.frame): def _init_ctrls(self, prnt): # generated method, don't edit wx.frame.__init__(self, id=wxid_frame1, name='', parent=prnt, pos=wx.point(383, 279), size=wx.size(441, 126), style=wx.default_frame_style, title='frame1') self.setclientsize(wx.size(441, 126)) self.button1 = wx.button(id=wxid_frame1button1, label=u'load', name='button1', parent=self, pos=wx.point(48, 72), size=wx.size(328, 32), style=0) self.button1.bind(wx.evt_button, self.onbutton1button, id=wxid_frame1button1) self.statictext1 = wx.statictext(id=wxid_frame1statictext1, label='no file selected', name='statictext1', parent=self, pos=wx.point(48, 32), size=wx.size(76, 17), style=0) def __init__(self, parent): self._init_ctrls(parent) def onbutton1button(self, event): dlg = wx.filedialog(self, 'choose file...', '.', '', '*.txt', wx.open) try: if dlg.showmodal() == wx.id_ok: self.statictext1.setlabel(dlg.getpath()) else: self.statictext1.setlabel('no file selected') finally: dlg.destroy()
pyapp1.py:
#!/usr/bin/env python #boa:pyapp:main import wx import frame1 modules ={'frame1': [0, '', u'frame1.py']} class boaapp(wx.app): def oninit(self): self.main = frame1.create(none) self.main.show() self.settopwindow(self.main) return true def main(): application = boaapp(0) application.mainloop() if __name__ == '__main__': main()
it works fine on ubuntu , windows 7. on windows xp (sp3) crashes user hits button (open file dialog doesn't appear)... please :)
Comments
Post a Comment