import sys import numpy as np from PyQt5.QtCore import QAbstractTableModel, Qt from PyQt5.QtWidgets import QMainWindow, QTableView, QApplication class TableModel(QAbstractTableModel): def __init__(self, data): super(TableModel, self).__init__() self._data = data def data(self, index, role): if role == Qt.DisplayRole: value = self._data[index.row(), index.column()] return str(value) def rowCount(self, index): return self._data.shape[0] def columnCount(self, index): return self._data.shape[1] class MainWindow(QMainWindow): def __init__(self): super().__init__() self.table = QTableView() data = np.array([ [1, 9, 2], [4, 0, -1], [7, 8, 9], [3, 3, 2], [5, 8, 9], ]) self.model = TableModel(data) self.table.setModel(self.model) self.setCentralWidget(self.table) self.setGeometry(600, 100, 400, 200) app = QApplication(sys.argv) window = MainWindow() window.show() sys.exit(app.exec_())