tableview_numpy.py 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import sys
  2. import numpy as np
  3. from PyQt5.QtCore import QAbstractTableModel, Qt
  4. from PyQt5.QtWidgets import QMainWindow, QTableView, QApplication
  5. class TableModel(QAbstractTableModel):
  6. def __init__(self, data):
  7. super(TableModel, self).__init__()
  8. self._data = data
  9. def data(self, index, role):
  10. if role == Qt.DisplayRole:
  11. value = self._data[index.row(), index.column()]
  12. return str(value)
  13. def rowCount(self, index):
  14. return self._data.shape[0]
  15. def columnCount(self, index):
  16. return self._data.shape[1]
  17. class MainWindow(QMainWindow):
  18. def __init__(self):
  19. super().__init__()
  20. self.table = QTableView()
  21. data = np.array([
  22. [1, 9, 2],
  23. [4, 0, -1],
  24. [7, 8, 9],
  25. [3, 3, 2],
  26. [5, 8, 9],
  27. ])
  28. self.model = TableModel(data)
  29. self.table.setModel(self.model)
  30. self.setCentralWidget(self.table)
  31. self.setGeometry(600, 100, 400, 200)
  32. app = QApplication(sys.argv)
  33. window = MainWindow()
  34. window.show()
  35. sys.exit(app.exec_())