[prev in list] [next in list] [prev in thread] [next in thread] 

List:       pykde
Subject:    [PyQt] Re: Crash in TableView cell edit
From:       Alberto Berti <alberto () metapensiero ! it>
Date:       2009-05-26 10:01:15
Message-ID: 87zld0kwt0.fsf () metapensiero ! it
[Download RAW message or body]


You have to keep your editor factory alive outside the scope of the
createTv() method

from PyQt4 import QtCore, QtGui

class EditorFactory(QtGui.QItemEditorFactory):
    pass

def createTv():
  tv = QtGui.QTableView()
  model = QtGui.QStandardItemModel(4, 2, tv)
  tv.setModel(model)

  delegate = QtGui.QStyledItemDelegate(tv)
  edfactory = EditorFactory()
  delegate.setItemEditorFactory(edfactory)
  tv.setItemDelegate(delegate)

  for row in range(4):
    for column in range(2):
      index = model.index(row, column, QtCore.QModelIndex())
      model.setData(index, QtCore.QVariant((row+1) * (column+1)))
  return edfactory, tv

if __name__ == '__main__':
  import sys
  app = QtGui.QApplication(sys.argv)
  edfactory, tableView = createTv()
  tableView.show()
  sys.exit(app.exec_())

_______________________________________________
PyQt mailing list    PyQt@riverbankcomputing.com
http://www.riverbankcomputing.com/mailman/listinfo/pyqt
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic