 <p>You can make the whole table read-only like this:</p> <pre><code> self.projectView.setEditTriggers(QAbstractItemView.NoEditTriggers) </code></pre> <p><strong>EDIT</strong>:</p> <p>If you also want to prevent copying of cells, you will need to kill the relevant keyboard shortcuts. Below is some example code that does that:</p> <pre><code>from PySide import QtGui, QtCore class Window(QtGui.QWidget): def __init__(self, rows, columns): super(Window, self).__init__() self.table = QtGui.QTableView(self) model = QtGui.QStandardItemModel(rows, columns, self.table) for row in range(rows): for column in range(columns): item = QtGui.QStandardItem('(%d, %d)' % (row, column)) model.setItem(row, column, item) self.table.setModel(model) self.table.setEditTriggers(QtGui.QAbstractItemView.NoEditTriggers) layout = QtGui.QVBoxLayout(self) layout.addWidget(self.table) self.table.installEventFilter(self) def eventFilter(self, source, event): if (source is self.table and event.type() == QtCore.QEvent.KeyPress and event == QtGui.QKeySequence.Copy): return True return super(Window, self).eventFilter(source, event) if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) window = Window(5, 5) window.setGeometry(600, 300, 600, 250) window.show() sys.exit(app.exec_()) </code></pre>