[PyQt] Threading crashes
andre.hotz at piranha-bytes.com
Tue Apr 20 13:33:56 BST 2010
I have a problem with my QThreads (running on windows). It is the first
time I use multithreading, so I am probably doing something wrong ;)
The situation is as follows: I have a QTreeWidget which works like a
filebrowser, listing a few thousand files. Creating
the treeitems from the files is pretty fast, but I also want the
treeWidget to display more information about the files.
This is taking some time depending on the quantity of the files. So what
I did is to first fill the treeView with all the filenames.
After that, I start an update-threat, which loops through all the items
in the treeWidget, gathers its data and fills the additional
columns in the treeView with the data. While the thread is updating the
treeWidget, the user can already work with the files and does not need
to wait for the update to finish.
This all works pretty well.
The problem now is that the user can do actions which will change the
filelist in the treeWidget (like changing the directory).
Doing this, the update thread tries to update items that do not longer
exist in the treeWidget and produce errors or just crashes.
My first idea was to just terminate the thread when the user does an
action which will change the filelist.
This seemed to work on first sight, but now my programm crashes really
often without any error given.
So, maybe someone has some tips about creating a safe thread which can
Or is there any way to check inside my updatethread if the items it
wants to update still exists?
Thanks for your time and help,
More information about the PyQt