Hinzufügen von Aktionen zur Symbolleiste “Explorer”

Plug-Ins können benutzerdefinierte Aktionen zur Symbolleiste Explorer hinzufügen, indem sie die in der Klasse SDUIMgr verfügbaren Rückrufe und Methoden verwenden.

Beispiel-Plug-in für Explorer-Symbolleistenaktionen

import sd



import os

from functools import partial



from PySide2 import QtWidgets



explorerCreatedCallbackID = None

explorerSelectionChangedCallbackIDs = []



def onActionTriggered(explorerID, uiMgr):

    '''Called when the user clicks on the toolbar icon.'''



    print("Selected items:")

    print("---------------")

    for item in uiMgr.getExplorerSelection(explorerID):

        print(item)

    print("n")



def explorerSelectionChanged(explorerID, uiMgr, action, originalExplorerID):

    '''Called when the selection in the explorer panel changes.'''



## Ignore callbacks for other explorer panels.

    if explorerID != originalExplorerID:

        return



    print("Explorer selection changed, id = %s" % explorerID)



## Enable or disable the action depending on the explorer selection.

    selection = uiMgr.getExplorerSelection(explorerID)

    action.setEnabled(len(selection) != 0)



def explorerCreated(explorerID, uiMgr):

    '''Called when a new explorer panel is created.'''



    print("Explorer created, id = %s" % explorerID)



## Warning: It is important to parent the action to some Qt object.

## If the action is not parented, Python will garbage collect it.

    act = QtWidgets.QAction("P", parent=uiMgr.getMainWindow())

    uiMgr.addActionToExplorerToolbar(explorerID, act)

    act.setToolTip("Print explorer selection to the console")

    act.triggered.connect(partial(onActionTriggered, explorerID=explorerID, uiMgr=uiMgr))



## Register a selection changed callback to update the action enabled state.

    global explorerSelectionChangedCallbackIDs

    explorerSelectionChangedCallbackIDs.append(uiMgr.registerExplorerSelectionChangedCallback(

        partial(explorerSelectionChanged, uiMgr=uiMgr, action=act, originalExplorerID=explorerID)))



## Set initial enabled / disabled state.

    explorerSelectionChanged(explorerID, uiMgr, act, explorerID)



def initializeSDPlugin():

    ctx = sd.getContext()

    app = ctx.getSDApplication()

    uiMgr = app.getQtForPythonUIMgr()



## Register an explorer created callback to add actions to newly created explorer toolbars.

    global explorerCreatedCallbackID

    explorerCreatedCallbackID = uiMgr.registerExplorerCreatedCallback(partial(explorerCreated, uiMgr=uiMgr))



def uninitializeSDPlugin():

    ctx = sd.getContext()

    app = ctx.getSDApplication()

    uiMgr = app.getQtForPythonUIMgr()



## Unregister all callbacks.

    global explorerCreatedCallbackID

    uiMgr.unregisterCallback(explorerCreatedCallbackID)



    global explorerSelectionChangedCallbackIDs

    for callbackID in explorerSelectionChangedCallbackIDs:

        uiMgr.unregisterCallback(callbackID)
recommendation-more-help
substance-3d-designer-help-guide