>> 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...
I do not see why you need to use QueuedConnection. I hope you do not want to say you have that 2 widgets you have are in different threads. On Wed, Sep 18, 2013 at 2:53 AM, Etienne Sandré-Chardonnal < etienne.san...@m4x.org> wrote: > 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 > > > _______________________________________________ > Interest mailing list > Interest@qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > >
_______________________________________________ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest