|
|
|
#!/usr/bin/env python
|
|
|
|
|
|
|
|
#****************************************************************************
|
|
|
|
#** $Id: bigtable.py,v 1.1 2002/06/19 07:56:07 phil Exp $
|
|
|
|
#**
|
|
|
|
#** Copyright (C) 1992-1998 Troll Tech AS. All rights reserved.
|
|
|
|
#**
|
|
|
|
#** This file is part of an example program for PyTQt. This example
|
|
|
|
#** program may be used, distributed and modified without limitation.
|
|
|
|
#**
|
|
|
|
#*****************************************************************************/
|
|
|
|
|
|
|
|
import sys
|
|
|
|
import os
|
|
|
|
from PyTQt.qt import *
|
|
|
|
from PyTQt.qttable import *
|
|
|
|
|
|
|
|
TRUE = 1
|
|
|
|
FALSE = 0
|
|
|
|
|
|
|
|
numRows = 1000000
|
|
|
|
numCols = 1000000
|
|
|
|
|
|
|
|
class MyTable(TQTable):
|
|
|
|
def __init__(self, r, c):
|
|
|
|
TQTable.__init__(self, r, c)
|
|
|
|
self.items = {}
|
|
|
|
self.widgets = {}
|
|
|
|
self.setCaption("This is a big table with 1.000.000x1.000.000 cells...")
|
|
|
|
self.setLeftMargin(self.fontMetrics().width("W999999W"))
|
|
|
|
|
|
|
|
def resizeData(self, v):
|
|
|
|
return
|
|
|
|
|
|
|
|
def item(self, r, c):
|
|
|
|
try:
|
|
|
|
return self.items[self.indexOf(r, c)]
|
|
|
|
except KeyError:
|
|
|
|
return None
|
|
|
|
|
|
|
|
def setItem(self, r, c, i):
|
|
|
|
self.items[self.indexOf(r, c)] = i
|
|
|
|
|
|
|
|
def clearCell(self, r, c):
|
|
|
|
try:
|
|
|
|
del self.items[self.indexOf(r, c)]
|
|
|
|
except KeyError:
|
|
|
|
pass
|
|
|
|
|
|
|
|
def insertWidget(self, r, c, w):
|
|
|
|
self.widgets[self.indexOf(r, c)] = w
|
|
|
|
|
|
|
|
def cellWidget(self, r, c):
|
|
|
|
try:
|
|
|
|
return self.widgets[self.indexOf(r, c)]
|
|
|
|
except KeyError:
|
|
|
|
return None
|
|
|
|
|
|
|
|
def clearCellWidget(self, r, c):
|
|
|
|
try:
|
|
|
|
del self.widgets[self.indexOf(r, c)]
|
|
|
|
except KeyError:
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
|
app = TQApplication(sys.argv)
|
|
|
|
|
|
|
|
table = MyTable(numRows, numCols)
|
|
|
|
app.setMainWidget(table)
|
|
|
|
table.show()
|
|
|
|
app.exec_loop()
|