PyQt 4.2 QAbstractTableModel/QTableView Example



This is my OLD blog. I've copied this post over to my NEW blog at:

http://www.saltycrane.com/blog/2007/06/pyqt-42-qabstracttablemodelqtableview/

You should be redirected in 2 seconds.



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

my_array = [['00','01','02'],
['10','11','12'],
['20','21','22']]

def main():
app = QApplication(sys.argv)
w = MyWindow()
w.show()
sys.exit(app.exec_())

class MyWindow(QWidget):
def __init__(self, *args):
QWidget.__init__(self, *args)

tablemodel = MyTableModel(my_array, self)
tableview = QTableView()
tableview.setModel(tablemodel)

layout = QVBoxLayout(self)
layout.addWidget(tableview)
self.setLayout(layout)

class MyTableModel(QAbstractTableModel):
def __init__(self, datain, parent=None, *args):
QAbstractTableModel.__init__(self, parent, *args)
self.arraydata = datain

def rowCount(self, parent):
return len(self.arraydata)

def columnCount(self, parent):
return len(self.arraydata[0])

def data(self, index, role):
if not index.isValid():
return QVariant()
elif role != Qt.DisplayRole:
return QVariant()
return QVariant(self.arraydata[index.row()][index.column()])

if __name__ == "__main__":
main()

No comments:

About

This is my *OLD* blog. I've copied all of my posts and comments over to my NEW blog at:

http://www.saltycrane.com/blog/.

Please go there for my updated posts. I will leave this blog up for a short time, but eventually plan to delete it. Thanks for reading.