Macro ExpandTreeItem

From FreeCAD Documentation
Jump to navigation Jump to search
This page is a translated version of the page Macro ExpandTreeItem and the translation is 100% complete.
Other languages:
English • ‎français • ‎italiano

Macro ExpandTreeItem.svg Macro ExpandTreeItem

Description
Cette macro déroule les item sélectionnés.S'il n'y a aucune sélection, tes items sont fermés False.

Version macro : 00.00
Date dernière modification : 2018-07-11
Version FreeCAD : All
Téléchargement : ToolBar Icon
Auteur
wmayer, UR_
Téléchargement
ToolBar Icon
Liens
Version Macro
00.00
Dernière modification
2018-07-11
Version(s) FreeCAD
All
Raccourci clavier
None
Voir aussi
None


Description

Déroule/enroule les items sélectionnés

si l'arbre sélectionné est déjà déroulé, cet arbre et tous les sous-arbres sont enroulés

s'il n'y a pas de sélection tous les items sont déroulés False

Collapsed00.gif

Utilisation

Copier la macro dans votre répertoire de macros, créez votre barre d'outils avec le bouton et lancez la macro

Script

ToolBar Icon .PNG Macro ExpandTreeItem.png and the .SVG Macro ExpandTreeItem.svg

Macro_ExpandTreeItem.FCMacro

# -*- coding: utf-8 -*-
#
# Expands selected tree and all sub trees in the tree view.
# if selected tree is already expanded this tree and all sub trees are collapsed True/False
# if there is no selection all trees are collapse False
#
__Title__    = "Macro ExpandTreeItem"
__Author__   = "wmayer, UR_"
__Version__  = "00.02"
__Date__     = "2019-07-25"

import PySide
from PySide import QtGui ,QtCore
from PySide.QtGui import *
from PySide.QtCore import *

def toggleAll(tree, item, collapse):
    if collapse == False:
        tree.expandItem(item)
    elif collapse == True:  
        tree.collapseItem(item)

    for i in range(item.childCount()):
        toggleAll(tree, item.child(i), collapse)

mw = Gui.getMainWindow()
trees = mw.findChildren(QtGui.QTreeWidget)

for tree in trees:
    items = tree.selectedItems()

    try:
        if items == []:
            #tree.selectAll()                          # select all object
            for obj in FreeCAD.ActiveDocument.Objects: # select obj.OutList
                if len(obj.OutList) != 0:
                    Gui.Selection.addSelection(obj)
                    items = tree.selectedItems()
            for item in items:
                toggleAll(tree, item, False)
    except Exception:
        None

    for item in items:
            if item.isExpanded() == True:
                toggleAll(tree, item, True)
        #            print ("collapsing")
            else:
                toggleAll(tree, item, False)
        #            print ("expanding")

Liens

Objektbaum mit einem Klick komplett aufklappen?