[table] simple version running
This commit is contained in:
49
nixview/data_models/table_model.py
Normal file
49
nixview/data_models/table_model.py
Normal file
@@ -0,0 +1,49 @@
|
||||
from PyQt5.QtCore import QAbstractTableModel, QModelIndex, Qt, QSize, QVariant
|
||||
import numpy as np
|
||||
|
||||
|
||||
class TableModel (QAbstractTableModel):
|
||||
|
||||
def __init__(self, file_handler, data_view, page=0, parent=None) -> None:
|
||||
super(TableModel, self).__init__(parent)
|
||||
self._file_handler = file_handler
|
||||
self._data_view = data_view
|
||||
self._page = page
|
||||
self._cols = self._data_view.full_shape[1] if len(self._data_view.full_shape) > 1 else 1
|
||||
self._rows = self._data_view.full_shape[0]
|
||||
self.insertColumns(0, self._cols)
|
||||
self.insertRows(0, self._rows)
|
||||
self._slice = [0 for i in range(len(self._data_view.full_shape))]
|
||||
if len(self._data_view.full_shape) > 2:
|
||||
self._slice[-1] = self._page
|
||||
"""
|
||||
if (array.getDimension(1).dimensionType() == nix::DimensionType::Set) {
|
||||
v_labels = array.getDimension(1).asSetDimension().labels();
|
||||
}
|
||||
if (shape.size() > 1) {
|
||||
if (array.getDimension(2).dimensionType() == nix::DimensionType::Set) {
|
||||
h_labels = array.getDimension(2).asSetDimension().labels();
|
||||
}
|
||||
}
|
||||
"""
|
||||
|
||||
def rowCount(self, parent):
|
||||
return self._rows
|
||||
|
||||
def columnCount(self, parent):
|
||||
return self._cols
|
||||
|
||||
def data(self, index, role):
|
||||
if not index.isValid() or role != Qt.DisplayRole:
|
||||
return None
|
||||
|
||||
d = ""
|
||||
if (index.row() < self._rows) and (index.column() < self._cols):
|
||||
self._slice[0] = index.row()
|
||||
if len(self._slice) == 2:
|
||||
self._slice[1] = index.column()
|
||||
d = self._data_view._buffer[tuple(self._slice)]
|
||||
|
||||
return str(np.round(d, 5))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user