On Tuesday 17 November 2009, 14:59:18 NARCISO, Rui wrote: > Hi > > Having browsed through the PyQt and Qt mailing lists without finding a > clear answer I'll ask my question here. > > I have a QTreeWidget which is populate with several hundred nodes. > > At the press of a button a loop is executed on all of the nodes whereby a > child node is createt and a request is put in a queue which is in a > separate thread. > > This worker thread will do it's work and send a signal per item with a > color to assign to each child item. > > My problem is that: > - given the high number of nodes > - given the "sometimes" quick execution of the work on the worker thread > I have the situation whereby I am trying to set the color of a child node > at the same time that I'm adding a new node. > > I then get a > QPaintEngine::setSystemClip: Should not be changed while engine is > active QWidgetPrivate::beginSharedPainter: Painter is already active > QPainter::begin: A paint device can only be painted by one painter at a > time. > > I've tried testing for self.tree.paintingActive() before setting the > color of my QTreeWidgetItem but it never returns any value. (self.tree > being my QTreeWidget). I even tried self.paintingActive() (being self my > QMainWindow) with the same result. > > So my questions are: > - does anyone know out the top of one's head (wihout looking at the > code) where the problem can come from? - can anyone see a concept error > on mmy approach? > > Thanks for the theoretical answer to my conceptual error
Given the disconcerting disclaimer below, I'm not sure, if I'm really allowed to answer you, since I wasn't addressed. I will do anyway by not answering directly this time. But before preceeding, please send this link to your mail admin: http://www.goldmark.org/jeff/stupid-disclaimers/ Since any thread is serialized by definition, it cannot happen at all. It sounds like you trigger some GUI/drawing code from within your worker threads. Given your errors, some thread is fiddling with the clipboard at least, I guess. Pete > Rui > > PS: I don't send a code to show the error cause I'd take me forever to > try to reproduce this error given the intricated design I have .... > sorry!!! > > __________________________________________________ > > Rui NARCISO > Data for Handling Qualities > Aerodynamics Department - EDGADY - M01 N368 > AIRBUS Operations S.A.S. > > Phone: +33 (0)5 61 18 10 77 > Fax: +33 (0)5 61 93 99 80 > <Mailto:[email protected]> > > > > The information in this e-mail is confidential. The contents may not be > disclosed or used by anyone other than the addressee. Access to this > e-mail by anyone else is unauthorised. If you are not the intended > recipient, please notify Airbus immediately and delete this e-mail. > Airbus cannot accept any responsibility for the accuracy or completeness > of this e-mail as it has been sent over public networks. If you have any > concerns over the content of this message or its Accuracy or Integrity, > please contact Airbus immediately. All outgoing e-mails from Airbus are > checked using regularly updated virus scanning software but you should > take whatever measures you deem to be appropriate to ensure that this > message and any attachments are virus free. > > > _______________________________________________ > PyQt mailing list [email protected] > http://www.riverbankcomputing.com/mailman/listinfo/pyqt _______________________________________________ PyQt mailing list [email protected] http://www.riverbankcomputing.com/mailman/listinfo/pyqt
