[Tutor] Segmentation Fault shenanigans with wx Gui
Marco Mistroni
mmistroni at gmail.com
Mon Oct 22 21:40:52 CEST 2012
Hello Ramit
yes solution worked...
thanks and regards
marco
On Mon, Oct 22, 2012 at 5:58 PM, Prasad, Ramit <ramit.prasad at jpmorgan.com>wrote:
> Marco Mistroni wrote:
>
> > Hello
> > i found the problem. It's calling self.list.ClearAll that causes the
> segmentation fault.
> > removing the call to ClearAll fixed my problem , but i still want to
> clear the list before i load new
> > data......
> > could anyone assist?
>
> I think the problem is the way you populate the data. The issue
> with ClearAll is a side effect of that. See below for more information.
>
> >
> > wkr
> > marco
> > On Fri, Oct 19, 2012 at 11:05 PM, Marco Mistroni <mmistroni at gmail.com>
> wrote:
> > Hi all
> > i have written a wx GUI which downloads json data from a server, and
> populate a listbox.
> > Every time i populate a listbox, i am receiving Segmentation Faults.
> > I have tried to retrieve data from the URL via separate thread, and to
> use events, but i am still getting a
> > segmentation fault
> >
> > could anyone assist pls?
> >
> > here's relevant code. I m running python on Ubuntu 10.04
> >
> [snip]
> >
> > self.list = AutoWidthListCtrl(panel)'
>
> This mailing list is for learning Python. Support and familiarity
> with 3rd party packages is limited. You will probably be better off
> asking the wxpython mailing list. Especially as the AutoWidthListCtrl
> is not a widget that comes with wxpython.
>
> [snip]
> >
> > def OnResult(self, event):
> > print 'onResult'
> > ptf_data = event.data
> > for item in ptf_data['portfolio']['items']:
> > index = self.list.InsertStringItem(sys.maxint, item['ticker'])
>
> I believe this is the source of your problem. You are using the
> incorrect value as the index. If you look at documentation for
> the base class ListCtrl [0][1] you will notice that the first
> argument to InsertStringItem is the insertion index. Instead you are
> using the same value (sys.maxint) for all items you are inserting.
> sys.maxint represents the maximum integer supported by the system
> and is not relevant for what you are trying to do. Instead use an
> incrementing count.
>
> rows = self.list.GetItemCount()
> for index, item in enumerate( ptf_data['portfolio']['items'], rows ):
> self.list.InsertStringItem(index, item['ticker'])
>
> [0]: http://wiki.wxpython.org/ListControls
> [1]: http://www.wxpython.org/docs/api/wx.ListCtrl-class.html
>
> > self.list.SetStringItem(index, 1, item['name'])
> > self.list.SetStringItem(index, 2, str(item['movingAvg200']))
> > self.list.SetStringItem(index, 3, str(item['movingAvg50']))
> > self.list.SetStringItem(index, 4, str(item['price']))
> > self.list.SetStringItem(index, 5, str(item['previous']))
> > self.list.SetStringItem(index, 6, str(item['price'] -
> item['previous']) )
> > self.list.SetStringItem(index, 7, str(item['totalValue']))
> > self.list.SetStringItem(index, 8, str(item['position']))
> >
>
> Do let us know if the suggestion works or not.
>
> Ramit Prasad
>
>
> This email is confidential and subject to important disclaimers and
> conditions including on offers for the purchase or sale of
> securities, accuracy and completeness of information, viruses,
> confidentiality, legal privilege, and legal entity disclaimers,
> available at http://www.jpmorgan.com/pages/disclosures/email.
> _______________________________________________
> Tutor maillist - Tutor at python.org
> To unsubscribe or change subscription options:
> http://mail.python.org/mailman/listinfo/tutor
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20121022/84a34ff0/attachment.html>
More information about the Tutor
mailing list