Advertisement
pblnrao

QTableView Custom Header

Jan 4th, 2013
1,787
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.41 KB | None | 0 0
  1. from PyQt4 import QtCore, QtGui
  2.  
  3. class myWindow(QtGui.QMainWindow):
  4.    
  5.     def __init__(self, parent=None):
  6.         super(myWindow, self).__init__(parent)
  7.         self.centralwidget  = QtGui.QWidget(self)
  8.         self.view           = QtGui.QTableView(self.centralwidget)
  9.         self.view.setSortingEnabled(True)
  10.         self.gridLayout = QtGui.QGridLayout(self.centralwidget)
  11.         self.gridLayout.addWidget(self.view, 1, 0, 1, 3)
  12.  
  13.         self.setCentralWidget(self.centralwidget)
  14.  
  15.         self.model = QtGui.QStandardItemModel(self)
  16.        
  17.         for rowName in range(3) * 5:
  18.             self.model.invisibleRootItem().appendRow(
  19.                 [   QtGui.QStandardItem("row {0} col {1}".format(rowName, column))
  20.                     for column in range(3)
  21.                     ]
  22.                 )
  23.         for column in range(3):
  24.             self.model.setHeaderData(column,QtCore.Qt.Horizontal,'Column %d' % int(column+1))
  25.             for row in range(3 * 5):
  26.                 self.model.setHeaderData(row,QtCore.Qt.Vertical,'Row %d' % int(row+1))
  27.                
  28.         self.proxy = QtGui.QSortFilterProxyModel(self)
  29.         self.proxy.setSourceModel(self.model)
  30.        
  31.         self.view.setModel(self.proxy)
  32.        
  33. if __name__ == "__main__":
  34.     import sys
  35.  
  36.     app  = QtGui.QApplication(sys.argv)
  37.     main = myWindow()
  38.     main.show()
  39.     main.resize(400, 600)
  40.     sys.exit(app.exec_())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement