[PyQt] Puzzling crash after multiple calls to getOpenFileName
    David Cortesi 
    davecortesi at gmail.com
       
    Mon Jun  9 22:07:00 BST 2014
    
    
  
Ordinarily I wouldn't call QFileDialog.getOpenFileName multiple times, but
in writing a unit test driver, I did code just that, and found it could
crash Python usually on the third call in rapid succession.
Here is a minimal test case, save as getopenfilename3.py and run under
Python 3.3:
  from PyQt5.QtCore import PYQT_VERSION_STR, QT_VERSION_STR
  print(PYQT_VERSION_STR,QT_VERSION_STR)
  from PyQt5.QtWidgets import QApplication, QMainWindow, QFileDialog
  app = QApplication([])
  mw = QMainWindow()
  mw.show()
  (path, _) = QFileDialog.getOpenFileName(mw,'PRESS CANCEL','.','')
  print(1,path)
  (path, _) = QFileDialog.getOpenFileName(mw,'PRESS CANCEL','.','')
  print(2,path)
  (path, _) = QFileDialog.getOpenFileName(mw,'PRESS CANCEL','.','')
  print(3,path)
  (path, _) = QFileDialog.getOpenFileName(mw,'PRESS CANCEL','.','')
  print(4,path)
When I run this from the command line in one of my systems it runs just as
expected.
But on my other dev system, the output is usually:
  5.3 5.3.0
  1
  2
  pure virtual method calledAbort trap: 6
And a crash report showing thread 0 died in libsystem_kernel.dylib, with
QFileDialog the 29th item in the stack display.
The differences between the two systems:
Where it works: Mac OS 10.9, Qt 5.2 and PyQt 5.2
Where it crashes: Mac OS 10.7 but Qt 5.3.0 and PyQt 5.3
Thanks for your time,
Dave Cortesi
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.riverbankcomputing.com/pipermail/pyqt/attachments/20140609/6074c66a/attachment.html>
    
    
More information about the PyQt
mailing list