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 92% complete.
Outdated translations are marked like this.
Other languages:
English • ‎français • ‎italiano

Macro ExpandTreeItem.svg Macro ExpandTreeItem

Descrizione
Nella vista della struttura espande l'albero selezionato e tutti gli alberi secondari.

Versione macro: 00.00
Ultima modifica: 2018-07-11
Versione FreeCAD: All
Download: ToolBar Icon
Autore
wmayer, UR_
Download
ToolBar Icon
Link
Versione macro
00.00
Data ultima modifica
2018-07-11
Versioni di FreeCAD
All
Scorciatoia
Nessuna
Vedere anche
Nessuno


Descrizione

Espande l'albero selezionato e tutti i sottoalberi nella vista ad albero.

se l'albero selezionato è già espanso, questo albero e tutti gli alberi secondari vengono compressi

se non ci sono selezioni vengono compressi

Collapsed00.gif

Uso

Copiare la macro nella directory macro, creare la barra degli strumenti e avviare 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")

Link

Objektbaum mit einem Klick komplett aufklappen?