[Interest] Widget event called after it has been deleted
Etienne Sandré-Chardonnal
etienne.sandre at m4x.org
Wed Sep 18 11:53:26 CEST 2013
Dear all,
In my app, I have two main widgets :
- One displaying a tree (TreeWidget) and allowing selecting nodes.
- One for editing the selected node (EditWidget), embedded in a QScrollArea
Selecting a node sets a new EditWidget using QScrollArea::setWidget. This
deletes the previous widget with a standard "delete" statement as seen in
Qt code.
One of the possible actions in EditWidget tells the TreeWidget to select
another node. This is the issue : it crashes because a queued event
(generally a focus out) gets called while the widget is deleted already.
1) I know could use a QueuedConnection for the previously described action,
but I don't like that kind of GUI design where a QueuedConnection is
required to avoid an app crash...
2) I could use scrollArea->takeWidget()->deleteLater() before setWidget().
I will try that.
3) Wouldn't it be better to use deleteLater() in the QScrollArea::setWidget
? This would solve the issue here. How about changing this in Qt source?
I'm using 4.8.1
Etienne
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20130918/8d67c99d/attachment.html>
More information about the Interest
mailing list