[PyQt] Object lifetime issues with dialogs, called from QStyledItemDelegate editors

Hans-Peter Jansen hpj at urpla.net
Sun Apr 9 11:30:57 BST 2017


Hi Phil,

On Sonntag, 9. April 2017 11:15:00 Phil Thompson wrote:
> On 8 Apr 2017, at 9:06 pm, Hans-Peter Jansen <hpj at urpla.net> wrote:
> > Hi,
> > 
> > I'm suffering from strange behavior related to object lifetime issues,
> > when
> > modal dialogs are called from QStyledItemDelegate editors, and posted
> > these
> > issues here:
> > 
> > http://stackoverflow.com/questions/43298605/strange-behavior-of-qcolordial
> > og-when-called-from-qstyleditemdelegate-subclass
> > 
> > http://stackoverflow.com/questions/43299616/calling-qcolordialog-triggered
> > -from-qstyleditemdelegate-editor-results-in-crash
> > 
> > When executing the itemdelegate.py script, double clicking on a color item
> > displays the standard QColorDialog. The dialog will close immediately, if
> > the dialog is moved(!). OTOH, selecting an arbitrary color beforehand,
> > the dialog behaves correctly..
> 
> Works fine for me on macOS.
> 
> > The mplexitemdelegate.py script crashes, when closing the QColorDialog,
> > after being called from a QTableView subclass, triggered from a signal.
> > 
> > When started, various editors for different types appear in the second
> > column. The color editors open a QComboBox with various predefined
> > colors. The last item triggers a signal in the QTableView, that calls
> > QColorDialog.getColor().
> Again, works fine for me on macOS.

Thanks a lot for testing, Phil. That's an interesting data point. 

So far, it points to some platform dependent issues of Qt itself.

@Audience: these issues could use some tests on different platforms. While 
Phil's environment is guaranteed to test the latest versions of Qt, sip and 
PyQt (and guess, MacOS as well), please give a note of your environment and 
versions, if being so nice to help me here with more data points. If testing 
on Linux, mentioning the window manager would be important as well.

Start digging into Qt now...

Thanks,
Pete


More information about the PyQt mailing list