QtArrayTableView#
High-volume array tables with sorting, lazy row loading, and optional colormap rendering.
Screenshot#

Example#
Source: examples/qt_table_view_array.py
"""QtArrayTableView."""
from __future__ import annotations
import numpy as np
from qtpy.QtWidgets import QApplication, QLabel, QPushButton, QVBoxLayout, QWidget
from qtextra.config import THEMES
from qtextra.widgets.qt_table_view_array import QtArrayTableView
N_ROWS = 500
N_COLS = 500
def _make_data() -> np.ndarray:
rng = np.random.default_rng(42)
return rng.normal(size=(N_ROWS, N_COLS))
app = QApplication([])
widget = QWidget()
THEMES.apply(widget)
layout = QVBoxLayout(widget)
status = QLabel(
f"QtArrayTableView showing a {N_ROWS}x{N_COLS} float array with sorting, lazy row loading, and a colormap.",
)
table = QtArrayTableView(sortable=True)
table.set_data(
_make_data(),
fmt="{:.3f}",
colormap="coolwarm",
min_val=-2,
max_val=2,
)
reload_button = QPushButton("Load New Data")
reload_button.clicked.connect(
lambda: table.set_data(
_make_data(),
fmt="{:.3f}",
colormap="coolwarm",
min_val=-2,
max_val=2,
),
)
layout.addWidget(status)
layout.addWidget(table)
layout.addWidget(reload_button)
widget.resize(900, 520)
widget.show()
app.exec_()
Notes#
- Designed for large numpy or pandas-backed numeric tables.
API#
Qt Class#
Qt Class#
Methods#
Model for the table.
color_list: np.ndarray | None = None
class-attribute
instance-attribute
#
colors: dict[int, QColor] | None = None
class-attribute
instance-attribute
#
fmt: str = '{}'
class-attribute
instance-attribute
#
max_color: QColor = None
class-attribute
instance-attribute
#
n_loaded: int = 0
class-attribute
instance-attribute
#
n_total: int = 0
class-attribute
instance-attribute
#
normalizer: Normalize | None = None
class-attribute
instance-attribute
#
reset_data() -> None
#
Reset data.
set_colormap(colormap: str, min_val: float | None = None, max_val: float | None = None) -> None
#
Set colormap.
set_data(data: ty.Union[np.ndarray, pd.DataFrame]) -> None
#
Set data in model.
set_formatting(fmt: str) -> None
#
Text formatter.
Qt Class#
Signals#
evt_key_release#
Methods#
Array table.
init() -> None
#
Initialize table to ensure correct visuals.
reset_data() -> None
#
Reset data.
set_colormap(colormap: str, min_val: float | None = None, max_val: float | None = None) -> None
#
Set colormap.
set_data(data: ty.Union[np.ndarray, pd.DataFrame], fmt: str = '{:d}', colormap: str | None = None, min_val: float | None = None, max_val: float | None = None) -> None
#
Set data.
set_formatting(fmt: str) -> None
#
Text formatter.