wxPython pop--up ("could not retrieve information...")

M

mistersulu

Hi all:

I'm using a wx.ListView object with a multi-threaded wxPython app.
The list is dynamically generated and accessed across two or more
threads. In spite of the fact that I have checks to see if an item at
a given index is in the list and the entire set of logic is contained
within a try: except: block I periodically get pop-up windows stating
"Could not retrieve information for list control item X" when I try to
change or access the list items.

I searched the web and groups for similar posts but can't find any
solutions.

My question is:

Is there a setting somewhere in wxPython to either disable these pop-
up messages or a semaphore or event locking method to enable cross-
thread access to a listview object?

Thanks in advance,
sulu
 
T

Timothy Grant

Hi all:

I'm using a wx.ListView object with a multi-threaded wxPython app.
The list is dynamically generated and accessed across two or more
threads. In spite of the fact that I have checks to see if an item at
a given index is in the list and the entire set of logic is contained
within a try: except: block I periodically get pop-up windows stating
"Could not retrieve information for list control item X" when I try to
change or access the list items.

I searched the web and groups for similar posts but can't find any
solutions.

My question is:

Is there a setting somewhere in wxPython to either disable these pop-
up messages or a semaphore or event locking method to enable cross-
thread access to a listview object?

Thanks in advance,
sulu

I haven't done any threaded apps, but my understanding is that the you
should not manipulate the GUI outside of the main application thread.
 
M

Mike Driscoll

Hi all:

I'm using a wx.ListView object with a multi-threaded wxPython app.
The list is dynamically generated and accessed across two or more
threads.  In spite of the fact that I have checks to see if an item at
a given index is in the list and the entire set of logic is contained
within a try: except: block I periodically get pop-up windows stating
"Could not retrieve information for list control item X" when I try to
change or access the list items.

I searched the web and groups for similar posts but can't find any
solutions.

My question is:

Is there a setting somewhere in wxPython to either disable these pop-
up messages or a semaphore or event locking method to enable cross-
thread access to a listview object?

Thanks in advance,
sulu

Accessing the GUI's main thread in wxPython (and most other GUI
toolkits) is a no-no. wxPython does provide a few thread-safe methods,
such as wx.CallAfter and wx.PostEvent. Otherwise you'll end up
blocking the GUI's main thread and the GUI will become unresponsive.
Check out Frank's link for one way to deal with this issue or download
the wxPython demo and check the threaded demo out.

http://wxpython.org/download.php

Also, I recommend joining the wxPython user's mailing list. They're
are a lot of nice people there and you'll learn a lot.

http://wxpython.org/maillist.php

Mike
 

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

No members online now.

Forum statistics

Threads
473,995
Messages
2,570,230
Members
46,819
Latest member
masterdaster

Latest Threads

Top