def setup(self): # # test list # self.testList = ctk.ctkCollapsibleButton(self.parent) self.testList.setLayout(qt.QVBoxLayout()) self.testList.setText("Self Tests") self.layout.addWidget(self.testList) self.testList.collapsed = False self.runAll = qt.QPushButton("Run All") self.testList.layout().addWidget(self.runAll) self.runAll.connect('clicked()', self.onRunAll) self.testButtons = {} self.testMapper = qt.QSignalMapper() self.testMapper.connect('mapped(const QString&)', self.onRun) testKeys = slicer.selfTests.keys() testKeys.sort() for test in testKeys: self.testButtons[test] = qt.QPushButton(test) self.testButtons[test].setToolTip(slicer.selfTests[test].__doc__) self.testList.layout().addWidget(self.testButtons[test]) self.testMapper.setMapping(self.testButtons[test], test) self.testButtons[test].connect('clicked()', self.testMapper, 'map()') # Add spacer to layout self.layout.addStretch(1)
def __init__(self, parent=None, optionsFrame=None): self.effects = [] self.effectButtons = {} self.effectMapper = qt.QSignalMapper() self.effectMapper.connect('mapped(const QString&)', self.selectEffect) self.editUtil = EditUtil.EditUtil() self.undoRedo = EditUtil.UndoRedo() self.undoRedo.stateChangedCallback = self.updateUndoRedoButtons # check for extensions - if none have been registered, just create the empty dictionary try: slicer.modules.editorExtensions except AttributeError: slicer.modules.editorExtensions = {} # register the builtin extensions self.editorBuiltins = {} self.editorBuiltins["PaintEffect"] = EditorLib.PaintEffect self.editorBuiltins["DrawEffect"] = EditorLib.DrawEffect self.editorBuiltins["ThresholdEffect"] = EditorLib.ThresholdEffect self.editorBuiltins["RectangleEffect"] = EditorLib.RectangleEffect self.editorBuiltins[ "LevelTracingEffect"] = EditorLib.LevelTracingEffect self.editorBuiltins["MakeModelEffect"] = EditorLib.MakeModelEffect self.editorBuiltins["ErodeEffect"] = EditorLib.ErodeEffect self.editorBuiltins["DilateEffect"] = EditorLib.DilateEffect self.editorBuiltins["ChangeLabelEffect"] = EditorLib.ChangeLabelEffect self.editorBuiltins[ "RemoveIslandsEffect"] = EditorLib.RemoveIslandsEffect self.editorBuiltins[ "IdentifyIslandsEffect"] = EditorLib.IdentifyIslandsEffect self.editorBuiltins["SaveIslandEffect"] = EditorLib.SaveIslandEffect self.editorBuiltins[ "ChangeIslandEffect"] = EditorLib.ChangeIslandEffect self.editorBuiltins["GrowCutEffect"] = EditorLib.GrowCutEffect if not parent: self.parent = qt.QFrame() self.parent.setLayout(qt.QVBoxLayout()) self.create() self.parent.show() else: self.parent = parent self.create() # frame that holds widgets specific for each effect if not optionsFrame: self.optionsFrame = qt.QFrame(self.parent) else: self.optionsFrame = optionsFrame # state variables for selected effect in the box # - currentOption is an instance of an option GUI # - currentTools is a list of EffectTool instances self.currentOption = None self.currentTools = []
def connectReviewButtons(self): """ Map the region buttons clicked() signals to the function """ self.buttonMapper = qt.QSignalMapper() self.buttonMapper.connect('mapped(const QString&)', self.logic.selectRegion) self.buttonMapper.connect('mapped(const QString&)', self.enableRadios) for image in self.images + self.regions: pushButton = self.imageQAWidget.findChild('QPushButton', image) self.buttonMapper.setMapping(pushButton, image) pushButton.connect('clicked()', self.buttonMapper, 'map()')
def __init__(self, parent=0, optionsFrame=None, embedded=False, suppliedEffects=[]): self.effects = [] self.effectButtons = {} self.effectMapper = qt.QSignalMapper() self.effectMapper.connect('mapped(const QString&)', self.selectEffect) self.editUtil = EditUtil.EditUtil() # check for extensions - if none have been registered, just create the empty dictionary try: slicer.modules.editorExtensions except AttributeError: slicer.modules.editorExtensions = {} # embedded boolean specifies whether or not this edit box is to be embedded # into another moduleWidget # - if it is, all effect buttons will be displayed in a single row self.embedded = embedded # save the list of supplied effects that the caller wants to use # (should be a subset of EditBox.availableMouseTools + EditBox.availableOperations) self.suppliedEffects = suppliedEffects if parent == 0: self.parent = qt.QFrame() self.parent.setLayout(qt.QVBoxLayout()) self.create() self.parent.show() else: self.parent = parent self.create() # frame that holds widgets specific for each effect if not optionsFrame: self.optionsFrame = qt.QFrame(self.parent) else: self.optionsFrame = optionsFrame # state variables for selected effect in the box # - currentOption is an instance of an option GUI # - currentTools is a list of EffectTool instances self.currentOption = None self.currentTools = []
def __init__(self, parent=None, optionsFrame=None): self.effects = [] self.effectButtons = {} self.effectCursors = {} self.effectMapper = qt.QSignalMapper() self.effectMapper.connect('mapped(const QString&)', self.selectEffect) self.editUtil = EditUtil.EditUtil() self.undoRedo = EditUtil.UndoRedo() self.undoRedo.stateChangedCallback = self.updateUndoRedoButtons self.toggleShortcut = None # check for extensions - if none have been registered, just create the empty dictionary try: slicer.modules.editorExtensions except AttributeError: slicer.modules.editorExtensions = {} # register the builtin extensions self.editorBuiltins = {} self.editorBuiltins["PaintEffect"] = EditorLib.PaintEffect self.editorBuiltins["DrawEffect"] = EditorLib.DrawEffect self.editorBuiltins["ThresholdEffect"] = EditorLib.ThresholdEffect self.editorBuiltins["RectangleEffect"] = EditorLib.RectangleEffect self.editorBuiltins[ "LevelTracingEffect"] = EditorLib.LevelTracingEffect self.editorBuiltins["MakeModelEffect"] = EditorLib.MakeModelEffect self.editorBuiltins["ErodeEffect"] = EditorLib.ErodeEffect self.editorBuiltins["DilateEffect"] = EditorLib.DilateEffect self.editorBuiltins["ChangeLabelEffect"] = EditorLib.ChangeLabelEffect self.editorBuiltins[ "RemoveIslandsEffect"] = EditorLib.RemoveIslandsEffect self.editorBuiltins[ "IdentifyIslandsEffect"] = EditorLib.IdentifyIslandsEffect self.editorBuiltins["SaveIslandEffect"] = EditorLib.SaveIslandEffect self.editorBuiltins[ "ChangeIslandEffect"] = EditorLib.ChangeIslandEffect self.editorBuiltins["GrowCutEffect"] = EditorLib.GrowCutEffect self.editorBuiltins[ "WatershedFromMarkerEffect"] = EditorLib.WatershedFromMarkerEffect self.editorBuiltins[ "FastMarchingEffect"] = EditorLib.FastMarchingEffect self.editorBuiltins["WandEffect"] = EditorLib.WandEffect if not parent: self.parent = qt.QFrame() self.parent.setLayout(qt.QVBoxLayout()) self.create() self.parent.show() else: self.parent = parent self.create() # frame that holds widgets specific for each effect if not optionsFrame: self.optionsFrame = qt.QFrame(self.parent) self.optionsFrame.objectName = 'OptionsFrame' else: self.optionsFrame = optionsFrame # state variables for selected effect in the box # - currentOption is an instance of an option GUI # - currentTools is a list of EffectTool instances self.currentOption = None self.currentTools = [] # listen for changes in the Interaction Mode appLogic = slicer.app.applicationLogic() interactionNode = appLogic.GetInteractionNode() self.interactionNodeTag = interactionNode.AddObserver( interactionNode.InteractionModeChangedEvent, self.onInteractionModeChanged)