python segfaulting, MemoryError (PyQt)

Denis L no at spam.com
Mon Apr 27 21:53:34 EDT 2009


Hello,

I'm experiencing odd errors on both windows and linux with the following 
code:

import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *

class Options(QDialog):
    def __init__(self, values):
        QDialog.__init__(self)

        self.values = values

        fooEdit = QLineEdit(values['foo'])
        self.connect(fooEdit, SIGNAL('textChanged(QString)'),
                     lambda value: self.optionChanged('foo', value))

        barEdit = QLineEdit(values['bar'])
        self.connect(barEdit, SIGNAL('textChanged(QString)'),
                     lambda value: self.optionChanged('bar', value))

        layout = QVBoxLayout()
        layout.addWidget(fooEdit)
        layout.addWidget(barEdit)

        self.setLayout(layout)

    def optionChanged(self, option, value):
        self.values[option] = value
        print self.values

def main(args):
    app = QApplication(args)
    values = dict(foo='', bar='')
    dialog = Options(values)
    dialog.show()
    app.exec_()

if __name__ == '__main__':
    main(sys.argv)


If I type a character in fooEdit, another character in barEdit, and then 
delete the character from barEdit I get an unhandled win32 exception occured 
in python.exe on windows and segfault on linux.

If I type a character in fooEdit, delete it, and then type a character in 
barEdit I get:

{'foo': PyQt4.QtCore.QString(u'a'), 'bar': ''}
{'foo': PyQt4.QtCore.QString(u''), 'bar': ''}
{'foo': Traceback (most recent call last):
  File "L:\home\dev\python\test.py", line 17, in <lambda>
    lambda value: self.optionChanged('bar', value))
  File "L:\home\dev\python\test.py", line 27, in optionChanged
    print self.values
MemoryError

I'm using Python 2.5.4 and PyQt 4.4.3-1

Thanks in advance for any help.

Denis 





More information about the Python-list mailing list