Hi,

The following 30-line program (python-2.1, PyQt/sip-2.5pre1, Qt-2.2.1)
shows a bug, that goes away if I comment out line 14 and
uncomment line 15 

--
#!/usr/bin/env python

import sys
from qt import *

class Item(QListViewItem):
    def __init__(self, parent, value):
        QListViewItem.__init__(self, parent)
        self.value = value

    def text(self, column):
        if column == 0:
            print self.value[0]
            return "%4d: %5d %8.2f %8.2f" % self.value[0] # this fails
            #return "%4d: %5d %s %s" % self.value[0] # this works
        elif column == 1: return "[%5d, %5d)" % self.value[1]
        else: return ""

list = [((1, 520, 3.14, 2.72), (13, 17)), ((2, 520, 2.72, 3.14), (37, 43))]
for item in list:
    print "%4d: %5d %8.2f %8.2f" % item[0]

app = QApplication(sys.argv)
listView = QListView()
app.setMainWidget(listView)
listView.setCaption('Pourquoi?')
listView.addColumn('Settings')
listView.addColumn('Zoom')
for item in list:
    Item(listView, item)
listView.show()
app.exec_loop()
--
It crashes with
--
[packer@taco python]$ python bug.py
   1:   520     3.14     2.72
   2:   520     2.72     3.14
(2, 520, 2.7200000000000002, 3.1400000000000001)
(1, 520, 3.1400000000000001, 2.7200000000000002)
(2, 520, 2.7200000000000002, 3.1400000000000001)
(1, 520, 3.1400000000000001, 2.7200000000000002)
(1, 520, 3.1400000000000001, 2.7200000000000002)
(1, 520, 3.1400000000000001, 2.7200000000000002)
(1, 520, 3.1400000000000001, 2.7200000000000002)
Traceback (most recent call last):
  File "bug.py", line 14, in text
    return "%4d: %5d %8.2f %8.2f" % self.value[0] # this fails
AttributeError: sipThis
Segmentation fault
[packer@taco python]$ 
--

Of course, later, I realized that the (b)right way to do this
is to write something like:
     def __init__(self, parent, value):
        QListViewItem.__init__(self, parent,
        "format0" % value[0],  "format1" % value[1])
        self.value = value

and not to redefine:
     def text(self, column)


but why does line 14 crash after being executed successfully
7 times?

Gerard 

_______________________________________________
PyKDE mailing list    [EMAIL PROTECTED]
http://mats.gmd.de/mailman/listinfo/pykde

Reply via email to