QtMultiDictTagViewer#
Read-only multi-record dictionary viewing with a synchronized summary widget.
Screenshot#

Example#
Source: examples/qt_multi_dict_tag_viewer.py
"""QtMultiDictTagViewer."""
from qtpy.QtWidgets import QApplication, QLabel, QVBoxLayout, QWidget
from qtextra.config import THEMES
from qtextra.widgets.qt_multi_dict_summary import QtMultiDictSummaryWidget
from qtextra.widgets.qt_multi_dict_tag_viewer import QtMultiDictTagViewer
app = QApplication([])
widget = QWidget()
THEMES.apply(widget)
layout = QVBoxLayout(widget)
layout.addWidget(QLabel("QtMultiDictTagViewer + standalone summary"))
viewer = QtMultiDictTagViewer()
summary = QtMultiDictSummaryWidget()
viewer.evt_items_changed.connect(summary.set_items)
viewer.set_items(
{
"sample_a": {
"group": "control",
"replicate": 1,
"score": 0.91,
},
"sample_b": {
"group": "treated",
"replicate": 2,
"score": 0.84,
"note": None,
},
"sample_c": {
"group": "treated",
"replicate": 3,
},
"sample_d": {
"group": "treated",
"replicate": 4,
},
"sample_e": {
"group": "treated",
"replicate": 5,
},
"sample_f": {
"group": "treated",
"replicate": 6,
},
},
)
body = QVBoxLayout()
body.addWidget(viewer, stretch=1)
body.addWidget(summary, stretch=2)
layout.addLayout(body)
layout.addWidget(QLabel("Read-only side-by-side dictionary display"))
viewer.search_edit.setText("score")
widget.resize(900, 700)
widget.show()
app.exec_()
API#
Qt Class#
Signals#
evt_search_changed#
evt_items_changed#
Methods#
Read-only searchable viewer for multiple dictionaries.
clearItems = clear_items
class-attribute
instance-attribute
#
exportDicts = export_dicts
class-attribute
instance-attribute
#
getItems = items
class-attribute
instance-attribute
#
getSampleNames = sample_names
class-attribute
instance-attribute
#
getValue = get_value
class-attribute
instance-attribute
#
setItems = set_items
class-attribute
instance-attribute
#
setSamples = set_samples
class-attribute
instance-attribute
#
clear_items() -> None
#
Clear all rows.
export_dicts() -> dict[str, dict[str, DictTagValue]]
#
Export the displayed nested dictionaries.
get_value(key: str, sample: str) -> DictTagValue
#
Return the value for a key in a sample.
items() -> dict[str, dict[str, DictTagValue]]
#
Return the current sample dictionaries.
sample_names() -> list[str]
#
Return the configured sample names.
set_items(items: Mapping[str, Mapping[str, DictTagValue]]) -> None
#
Replace all displayed sample dictionaries.
set_samples(samples: list[str]) -> None
#
Set the active sample names.
Qt Class#
Methods#
Summary panel for nested dictionary data.
clearItems = clear_items
class-attribute
instance-attribute
#
setItems = set_items
class-attribute
instance-attribute
#
summaryData = summary_data
class-attribute
instance-attribute
#
build_summary(items: Mapping[str, Mapping[str, DictTagValue]]) -> dict
classmethod
#
Build structured summary data for nested dictionaries.
clear_items() -> None
#
Clear all summaries.
set_items(items: Mapping[str, Mapping[str, DictTagValue]]) -> None
#
Compute summaries from nested dictionaries.
summary_data() -> dict
#
Return the computed summary structure.