from PySide6.QtWidgets import QTreeWidget, QTreeWidgetItem from PySide6.QtCore import Qt def apply_indentation_to_all_columns(tree: QTreeWidget): """ Rekurencyjnie stosuje wizualne wcięcie dla wszystkich elementów w drzewie we wszystkich kolumnach. """ for i in range(tree.topLevelItemCount()): item = tree.topLevelItem(i) _indent_subtree(item, 0) def _indent_subtree(item: QTreeWidgetItem, level: int): """Dodaje wcięcie (np. spacje) na każdy poziom hierarchii w całym wierszu.""" indent_spaces = " " * 2 * level for col in range(item.columnCount()): original_text = item.text(col).lstrip() item.setText(col, f"{indent_spaces}{original_text}") item.setData(col, Qt.TextAlignmentRole, Qt.AlignLeft | Qt.AlignVCenter) # Rekurencja dla dzieci for i in range(item.childCount()): _indent_subtree(item.child(i), level + 1)