def warningMessage(self, message): messageBox = ctk.ctkMessageBox() messageBox.setWindowTitle(" /!\ WARNING /!\ ") messageBox.setIcon(messageBox.Warning) messageBox.setText(message) messageBox.setStandardButtons(messageBox.Ok) messageBox.exec_()
def info_message_box(self,text): c = ctk.ctkMessageBox() c.setIcon(qt.QMessageBox.Information) c.setText(text) c.setStandardButtons(qt.QMessageBox.Ok) c.setDefaultButton(qt.QMessageBox.Ok) answer = c.exec_()
def onCleanButton(self): messageBox = ctk.ctkMessageBox() messageBox.setWindowTitle(" /!\ WARNING /!\ ") messageBox.setIcon(messageBox.Warning) messageBox.setText("Your model is about to be modified") messageBox.setInformativeText("Do you want to continue?") messageBox.setStandardButtons(messageBox.No | messageBox.Yes ) choice = messageBox.exec_() if choice == messageBox.Yes: if self.inputModelSelector.currentNode(): activeInput = self.inputModelSelector.currentNode() self.dictionaryInput[activeInput.GetID()].cleanBool = True # Clean the mesh with vtkCleanPolyData cleaner and vtkTriangleFilter: self.logic.cleanerAndTriangleFilter(activeInput) # Define the new ROI: fidNode = slicer.app.mrmlScene().GetNodeByID(self.dictionaryInput[activeInput.GetID()].fidNodeID) selectedLandmarkID = self.logic.findIDFromLabel(self.dictionaryInput[activeInput.GetID()].dictionaryLandmark, self.landmarkComboBoxROI.currentText) if selectedLandmarkID != False: activeLandmarkState = self.dictionaryInput[activeInput.GetID()].dictionaryLandmark[selectedLandmarkID] markupsIndex = fidNode.GetMarkupIndexByID(selectedLandmarkID) activeLandmarkState.indexClosestPoint = self.logic.getClosestPointIndex(fidNode, slicer.util.getNode(activeInput.GetID()).GetPolyData(), markupsIndex) self.onRadiusValueChanged() else: messageBox.setText(" Region not modified") messageBox.setStandardButtons(messageBox.Ok) messageBox.setInformativeText("") messageBox.exec_()
def confim_message_box(self,text): c = ctk.ctkMessageBox() c.setIcon(qt.QMessageBox.Information) c.setText(text) c.setStandardButtons(qt.QMessageBox.Yes | qt.QMessageBox.No) c.setDefaultButton(qt.QMessageBox.Ok) answer = c.exec_() return answer == qt.QMessageBox.Yes
def warningMessage(self, text, informativeText): messageBox = ctk.ctkMessageBox() messageBox.setWindowTitle(' /!\ WARNING /!\ ') messageBox.setIcon(messageBox.Warning) messageBox.setText(text) if not informativeText == None: messageBox.setInformativeText(informativeText) messageBox.setStandardButtons(messageBox.Ok) messageBox.exec_()
def onAddButton(self): # Add fiducial on the scene. # If no input model selected, the addition of fiducial shouldn't be possible. if self.inputModelSelector.currentNode(): self.interactionNode.SetCurrentInteractionMode(1) else: messageBox = ctk.ctkMessageBox() messageBox.setWindowTitle(" /!\ WARNING /!\ ") messageBox.setIcon(messageBox.Warning) messageBox.setText("Please select a model of reference") messageBox.setStandardButtons(messageBox.Ok) messageBox.exec_()
def messageBox(text, parent=None, **kwargs): """Displays a messagebox. ctkMessageBox is used instead of a default qMessageBox to provide "Don't show again" checkbox. For example: slicer.util.messageBox("Some message", dontShowAgainSettingsKey = "MainWindow/DontShowSomeMessage") """ import qt import ctk mbox = ctk.ctkMessageBox(parent if parent else mainWindow()) mbox.text = text for key, value in kwargs.iteritems(): if hasattr(mbox, key): setattr(mbox, key, value) return mbox.exec_()
def onCleanButton(self): messageBox = ctk.ctkMessageBox() messageBox.setWindowTitle(" /!\ WARNING /!\ ") messageBox.setIcon(messageBox.Warning) messageBox.setText("Your model is about to be modified") messageBox.setInformativeText("Do you want to continue?") messageBox.setStandardButtons(messageBox.No | messageBox.Yes) choice = messageBox.exec_() if choice == messageBox.Yes: selectedLandmark = self.landmarkComboBox.currentText self.logic.cleanMesh(selectedLandmark) self.onRadiusValueChanged() else: messageBox.setText(" Region not modified") messageBox.setStandardButtons(messageBox.Ok) messageBox.setInformativeText("") messageBox.exec_()
def exportationFunction(self, directoryExport, listToExport, typeCalculation, correspondentDict): directory = directoryExport.directory.encode('utf-8') messageBox = ctk.ctkMessageBox() messageBox.setWindowTitle(' /!\ WARNING /!\ ') messageBox.setIcon(messageBox.Warning) fileName = directory + '/' + typeCalculation + '.csv' if os.path.exists(fileName): messageBox.setText('File ' + fileName + ' already exists!') messageBox.setInformativeText('Do you want to replace it ?') messageBox.setStandardButtons( messageBox.No | messageBox.Yes) choice = messageBox.exec_() if choice == messageBox.NoToAll: return True if choice == messageBox.Yes: self.exportAsCSV(fileName, listToExport, typeCalculation, correspondentDict) else: self.exportAsCSV(fileName, listToExport, typeCalculation, correspondentDict)
def connectedModelChangement(self): messageBox = ctk.ctkMessageBox() messageBox.setWindowTitle(" /!\ WARNING /!\ ") messageBox.setIcon(messageBox.Warning) messageBox.setText("The Markup Fiducial Node selected is curently projected on an" "other model, if you chose to continue the fiducials will be " "reprojected, and this could impact the functioning of other modules") messageBox.setInformativeText("Do you want to continue?") messageBox.setStandardButtons(messageBox.No | messageBox.Yes) choice = messageBox.exec_() if choice == messageBox.Yes: return True else: messageBox.setText(" Node not modified") messageBox.setStandardButtons(messageBox.Ok) messageBox.setInformativeText("") messageBox.exec_() return False
def connectedModelChangement(self): messageBox = ctk.ctkMessageBox() messageBox.setWindowTitle(" /!\ WARNING /!\ ") messageBox.setIcon(messageBox.Warning) messageBox.setText( "The Markup Fiducial Node selected is curently projected on an" "other model, if you chose to continue the fiducials will be " "reprojected, and this could impact the functioning of other modules" ) messageBox.setInformativeText("Do you want to continue?") messageBox.setStandardButtons(messageBox.No | messageBox.Yes) choice = messageBox.exec_() if choice == messageBox.Yes: return True else: messageBox.setText(" Node not modified") messageBox.setStandardButtons(messageBox.Ok) messageBox.setInformativeText("") messageBox.exec_() return False
def isUnderTransform(self, markups): if markups.GetParentTransformNode(): messageBox = ctk.ctkMessageBox() messageBox.setWindowTitle(" /!\ WARNING /!\ ") messageBox.setIcon(messageBox.Warning) messageBox.setText("Your Markup Fiducial Node is currently modified by a transform," "if you choose to continue the program will apply the transform" "before doing anything else!") messageBox.setInformativeText("Do you want to continue?") messageBox.setStandardButtons(messageBox.No | messageBox.Yes) choice = messageBox.exec_() if choice == messageBox.Yes: logic = slicer.vtkSlicerTransformLogic() logic.hardenTransform(markups) return False else: messageBox.setText(" Node not modified") messageBox.setStandardButtons(messageBox.Ok) messageBox.setInformativeText("") messageBox.exec_() return True else: return False
def isUnderTransform(self, markups): if markups.GetParentTransformNode(): messageBox = ctk.ctkMessageBox() messageBox.setWindowTitle(" /!\ WARNING /!\ ") messageBox.setIcon(messageBox.Warning) messageBox.setText( "Your Markup Fiducial Node is currently modified by a transform," "if you choose to continue the program will apply the transform" "before doing anything else!") messageBox.setInformativeText("Do you want to continue?") messageBox.setStandardButtons(messageBox.No | messageBox.Yes) choice = messageBox.exec_() if choice == messageBox.Yes: logic = slicer.vtkSlicerTransformLogic() logic.hardenTransform(markups) return False else: messageBox.setText(" Node not modified") messageBox.setStandardButtons(messageBox.Ok) messageBox.setInformativeText("") messageBox.exec_() return True else: return False