Skip to content

tree_view

build_tree_view_preview_widget()

Show one AYTreeView per variant with lazy-loaded fake data.

Source code in ui_preview/tree_view.py
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
def build_tree_view_preview_widget() -> QtWidgets.QWidget:
    """Show one AYTreeView per variant with lazy-loaded fake data."""
    container = QtWidgets.QWidget()
    root_lyt = AYVBoxLayout(container, margin=8, spacing=8)

    for variant in AYTreeView.Variants:
        label = QtWidgets.QLabel(f"variant: {variant.value}")
        label.setFixedHeight(20)
        root_lyt.addWidget(label)

        tv = AYTreeView(variant=variant)
        tv.setModel(LazyTreeModel(fetch_children=fetch_children))
        tv.setMinimumHeight(160)
        root_lyt.addWidget(tv)

        tv.selection_changed.connect(
            lambda selected, deselected, tv=tv: print(
                "selection changed: "
                f"Selected {[i.data() for i in selected.indexes()]} "
                "and deselected "
                f"{[i.data() for i in deselected.indexes()]}) "
                "(full selection: "
                f"{[i.data() for i in tv.selectedIndexes()]})"
            )
        )

    container.setMinimumWidth(360)
    return container