def applyTextStyle(self, mode): """ Applies a stylistic change to text depending on the 'mode' argument specified. Empty searchLines are italicized. """ if mode == 'empty': self.searchLine.setFont(self.MODULE.GLOBALS.LABEL_FONT_ITALIC) palette = qt.QPalette() color = qt.QColor(150, 150, 150) palette.setColor(6, color) self.searchLine.setPalette(palette) self.searchLine.update() self.searchLine.setFont(self.MODULE.GLOBALS.LABEL_FONT_ITALIC) self.searchLine.setObjectName("searchLine") self.searchLine.setStyleSheet( "#searchLine {color: lightgray; border: none}") elif mode == 'not empty': self.searchLine.setStyleSheet( "#searchLine {color: rgb(20,40, 200); border: none}") self.searchLine.setFont(self.MODULE.GLOBALS.LABEL_FONT) palette = qt.QPalette() color = qt.QColor(0, 0, 0) palette.setColor(6, color) self.searchLine.setPalette(palette)
def makeLoginButton(LoginMenu): """ Connects the login to the first treeView call """ plt = qt.QPalette() plt.setColor(qt.QPalette().Button, qt.QColor(255, 255, 255)) loginButton = qt.QPushButton("Login") loginButton.setFont(LoginMenu.LABEL_FONT) loginButton.toolTip = "Login to selected Xnat host" loginButton.setFixedSize(48, 24) return loginButton
def onTubeFixedColor(self): dlg=qt.QColorDialog() color = dlg.getColor( self.logic.tubeFixedColor) if color.isValid(): self.logic.tubeFixedColor = color self.tubeColorButton.setText(color.name()) self.tubeColorButton.setPalette(qt.QPalette(color))
def setup(self): # make an instance of the logic self.logic = TwoTensorModelVizLogic() # # Model Selection Area # modelCollapsibleButton = ctk.ctkCollapsibleButton() modelCollapsibleButton.text = "Basic" self.layout.addWidget(modelCollapsibleButton) modelFormLayout = qt.QFormLayout(modelCollapsibleButton) # ============Fiber model selector=================== self.modelSelector = slicer.qMRMLNodeComboBox() self.modelSelector.nodeTypes = ( ("vtkMRMLFiberBundleNode"), "" ) self.modelSelector.selectNodeUponCreation = True self.modelSelector.addEnabled = False self.modelSelector.removeEnabled = False self.modelSelector.noneEnabled = False self.modelSelector.showHidden = False self.modelSelector.showChildNodeTypes = False self.modelSelector.setMRMLScene( slicer.mrmlScene ) self.modelSelector.setToolTip( "Pick a bundle of fibers." ) modelFormLayout.addRow("Fiber bundles: ", self.modelSelector) self.modelSelector.connect('currentNodeChanged(vtkMRMLNode*)', \ self.onModelSelect) # ============Glyph Space scroller================= self.sliderGlyphSpace = ctk.ctkSliderWidget() self.sliderGlyphSpace.decimals = 0 self.sliderGlyphSpace.minimum=1 self.sliderGlyphSpace.maximum=100 self.sliderGlyphSpace.value=10 self.sliderGlyphSpace.enabled = False modelFormLayout.addRow("Glyph Space:", self.sliderGlyphSpace) self.sliderGlyphSpace.connect('valueChanged(double)', \ self.onGlyphSpaceChanged) # ============Glyph Scale scroller================= self.sliderGlyphScale = ctk.ctkSliderWidget() self.sliderGlyphScale.decimals = 0 self.sliderGlyphScale.minimum=1 self.sliderGlyphScale.maximum=10000 self.sliderGlyphScale.value=2000 self.sliderGlyphScale.enabled = False modelFormLayout.addRow("Glyph Scale:", self.sliderGlyphScale) self.sliderGlyphScale.connect('valueChanged(double)', \ self.onGlyphScaleChanged) modelGridLayout=qt.QGridLayout() modelFormLayout.addRow("View Items:",modelGridLayout) # ============Check Box for showing lines============== self.checkboxLines=qt.QCheckBox("Lines") self.checkboxLines.toolTip="When checked, fiber lines are shown." self.checkboxLines.checked=True self.checkboxLines.enabled=False #modelFormLayout.addRow(self.checkboxLines) modelGridLayout.addWidget(self.checkboxLines,0,0) # ============Check Box for showing tensor 1============== self.checkboxTensor1=qt.QCheckBox("Tensor 1") self.checkboxTensor1.toolTip="When checked, cylinder glyphs are shown for tensor 1." self.checkboxTensor1.checked=True self.checkboxTensor1.enabled=False modelGridLayout.addWidget(self.checkboxTensor1,0,1) # ============Check Box for showing tensor 2============== self.checkboxTensor2=qt.QCheckBox("Tensor 2") self.checkboxTensor2.toolTip="When checked, cylinder glyphs are shown for tensor 2." self.checkboxTensor2.checked=True self.checkboxTensor2.enabled=False modelGridLayout.addWidget(self.checkboxTensor2,0,2) # ============Check Box for showing tube============== self.checkboxTubes=qt.QCheckBox("Tubes") self.checkboxTubes.toolTip="When checked, tubes will be shown." self.checkboxTubes.checked=True self.checkboxTubes.enabled=False modelGridLayout.addWidget(self.checkboxTubes,0,3) # # Fiber Filter Area # filterCollapsibleButton = ctk.ctkCollapsibleButton() filterCollapsibleButton.text = "Fiber Filter" self.layout.addWidget(filterCollapsibleButton) filterFormLayout = qt.QFormLayout(filterCollapsibleButton) # ============Line Space scroller================= self.sliderLineSpace = ctk.ctkSliderWidget() self.sliderLineSpace.decimals = 0 self.sliderLineSpace.minimum=1 self.sliderLineSpace.maximum=100 self.sliderLineSpace.value=10 self.sliderLineSpace.enabled = False filterFormLayout.addRow("One of n Fibers:", self.sliderLineSpace) self.sliderLineSpace.connect('valueChanged(double)', \ self.onLineSpaceChanged) # ============Line Num scroller================= self.sliderLineNum = ctk.ctkSliderWidget() self.sliderLineNum.decimals = 0 self.sliderLineNum.minimum=1 self.sliderLineNum.maximum=100 self.sliderLineNum.value=1 self.sliderLineNum.enabled = False filterFormLayout.addRow("Specific Fiber No:", self.sliderLineNum) self.sliderLineNum.connect('valueChanged(double)', \ self.onLineNumChanged) # ============Check Box for showing one fiber============== self.checkboxOnlyOneLine=qt.QCheckBox("Only show the specific fiber") self.checkboxOnlyOneLine.toolTip="When checked, only the specified fiber is shown." self.checkboxOnlyOneLine.checked=False self.checkboxOnlyOneLine.enabled=False filterFormLayout.addWidget(self.checkboxOnlyOneLine) # # Cylinder Color Mapping Area # cylinderColorCollapsibleButton = ctk.ctkCollapsibleButton() cylinderColorCollapsibleButton.text = "Cylinder Boby Color" self.layout.addWidget(cylinderColorCollapsibleButton) cylinderVBoxLayOut = qt.QVBoxLayout(cylinderColorCollapsibleButton) # Add a TabWidget cylinderTabWidget=qt.QTabWidget() cylinderVBoxLayOut.addWidget(cylinderTabWidget) # Create four pages and the GridLayOut redPage=qt.QWidget() redGrid=qt.QGridLayout(redPage) cylinderTabWidget.addTab(redPage,'Red') greenPage=qt.QWidget() greenGrid=qt.QGridLayout(greenPage) cylinderTabWidget.addTab(greenPage,'Green') bluePage=qt.QWidget() blueGrid=qt.QGridLayout(bluePage) cylinderTabWidget.addTab(bluePage,'Blue') alphaPage=qt.QWidget() alphaGrid=qt.QGridLayout(alphaPage) cylinderTabWidget.addTab(alphaPage,'Alpha') #========= Set the Red page ============== groupBox=qt.QGroupBox() grid = qt.QGridLayout(groupBox) redGrid.addWidget(groupBox,0,1) self.bodRadioR1=qt.QRadioButton("Fixed to:") self.bodRadioR2=qt.QRadioButton("Mapped to:") self.bodRadioR1.checked=True self.bodSliderR = ctk.ctkSliderWidget() self.bodSliderR.decimals = 0 self.bodSliderR.minimum=0 self.bodSliderR.maximum=255 self.bodSliderR.value=1 self.bodSliderR.enabled = True self.bodComboR = qt.QComboBox() self.bodComboR.duplicatesEnabled= False grid.addWidget(self.bodRadioR1,0,0) grid.addWidget(self.bodRadioR2,1,0) grid.addWidget(self.bodSliderR,0,1) grid.addWidget(self.bodComboR,1,1) #========= Set the Green page ============== groupBox=qt.QGroupBox() grid = qt.QGridLayout(groupBox) greenGrid.addWidget(groupBox,0,1) self.bodRadioG1=qt.QRadioButton("Fixed to:") self.bodRadioG2=qt.QRadioButton("Mapped to:") self.bodRadioG1.checked=True self.bodSliderG = ctk.ctkSliderWidget() self.bodSliderG.decimals = 0 self.bodSliderG.minimum=0 self.bodSliderG.maximum=255 self.bodSliderG.value=1 self.bodSliderG.enabled = True self.bodComboG = qt.QComboBox() self.bodComboG.duplicatesEnabled= False grid.addWidget(self.bodRadioG1,0,0) grid.addWidget(self.bodRadioG2,1,0) grid.addWidget(self.bodSliderG,0,1) grid.addWidget(self.bodComboG,1,1) #========= Set the Blue page ============== groupBox=qt.QGroupBox() grid = qt.QGridLayout(groupBox) blueGrid.addWidget(groupBox,0,1) self.bodRadioB1=qt.QRadioButton("Fixed to:") self.bodRadioB2=qt.QRadioButton("Mapped to:") self.bodRadioB1.checked=True self.bodSliderB = ctk.ctkSliderWidget() self.bodSliderB.decimals = 0 self.bodSliderB.minimum=0 self.bodSliderB.maximum=255 self.bodSliderB.value=1 self.bodSliderB.enabled = True self.bodComboB = qt.QComboBox() self.bodComboB.duplicatesEnabled= False grid.addWidget(self.bodRadioB1,0,0) grid.addWidget(self.bodRadioB2,1,0) grid.addWidget(self.bodSliderB,0,1) grid.addWidget(self.bodComboB,1,1) #========= Set the Alpha page ============== groupBox=qt.QGroupBox() grid = qt.QGridLayout(groupBox) alphaGrid.addWidget(groupBox,0,1) self.bodRadioA1=qt.QRadioButton("Fixed to:") self.bodRadioA2=qt.QRadioButton("Mapped to:") self.bodRadioA1.checked=True self.bodSliderA = ctk.ctkSliderWidget() self.bodSliderA.decimals = 0 self.bodSliderA.minimum=0 self.bodSliderA.maximum=255 self.bodSliderA.value=1 self.bodSliderA.enabled = True self.bodComboA = qt.QComboBox() self.bodComboA.duplicatesEnabled= False grid.addWidget(self.bodRadioA1,0,0) grid.addWidget(self.bodRadioA2,1,0) grid.addWidget(self.bodSliderA,0,1) grid.addWidget(self.bodComboA,1,1) # # Tube Mapping Area # tubeColorCollapsibleButton = ctk.ctkCollapsibleButton() tubeColorCollapsibleButton.text = "Tube Mapping" self.layout.addWidget(tubeColorCollapsibleButton) tubeVboxLayOut = qt.QVBoxLayout(tubeColorCollapsibleButton) # Add a TabWidget tubeTabWidget=qt.QTabWidget() tubeVboxLayOut.addWidget(tubeTabWidget) # Create three pages and the GridLayOut tubeColorPage=qt.QWidget() tubeColorGrid=qt.QGridLayout(tubeColorPage) tubeTabWidget.addTab(tubeColorPage,'Color') tubeSizePage=qt.QWidget() tubeSizeGrid=qt.QGridLayout(tubeSizePage) tubeTabWidget.addTab(tubeSizePage,'Size') #========= Set the color page ============== groupBox=qt.QGroupBox() grid = qt.QGridLayout(groupBox) tubeColorGrid.addWidget(groupBox,0,0) self.tubeRadioFixedTo=qt.QRadioButton("Fixed to") self.tubeRadioByOrientation=qt.QRadioButton("Color by orientation") self.tubeRadioSameAsCylinderBody=qt.QRadioButton("Same as Cylinder Body") self.tubeRadioByOrientation.checked=True grid.addWidget(self.tubeRadioFixedTo,0,0) grid.addWidget(self.tubeRadioByOrientation,1,0) grid.addWidget(self.tubeRadioSameAsCylinderBody,2,0) self.tubeColorButton=qt.QPushButton('Specifying Color') self.tubeColorButton.setAutoFillBackground(True) grid.addWidget(self.tubeColorButton,0,1) self.tubeColorButton.connect('clicked()', \ self.onTubeFixedColor) #========= Set the size page ============== self.tubeSizeRadio1=qt.QRadioButton("Fixed to:") self.tubeSizeRadio2=qt.QRadioButton("Mapped to:") self.tubeSizeRadio1.checked=True self.tubeSizeSlider = ctk.ctkSliderWidget() self.tubeSizeSlider.decimals = 2 self.tubeSizeSlider.minimum=0.0 self.tubeSizeSlider.maximum=5.0 self.tubeSizeSlider.value=0.1 self.tubeSizeSlider.enabled = True self.tubeComboBox = qt.QComboBox() self.tubeComboBox.duplicatesEnabled= False tubeSizeGrid.addWidget(self.tubeSizeRadio1,0,0) tubeSizeGrid.addWidget(self.tubeSizeRadio2,1,0) tubeSizeGrid.addWidget(self.tubeSizeSlider,0,1) tubeSizeGrid.addWidget(self.tubeComboBox,1,1) # ============Scale scroller================= label=qt.QLabel('Tube Scale:') self.sliderTubeScale = ctk.ctkSliderWidget() self.sliderTubeScale.decimals = 0 self.sliderTubeScale.minimum=1 self.sliderTubeScale.maximum=100 self.sliderTubeScale.value=5 self.sliderTubeScale.enabled = False tubeSizeGrid.addWidget(label,2,0) tubeSizeGrid.addWidget(self.sliderTubeScale,2,1) self.sliderTubeScale.connect('valueChanged(double)', \ self.onTubeScaleChanged) # # ============Apply button================= # self.applyButton = qt.QPushButton("Apply") self.applyButton.toolTip = "Apply the visualization." self.applyButton.enabled = False self.applyButton.setPalette(qt.QPalette(qt.QColor(128,255,128))) self.parent.layout().addWidget(self.applyButton) self.applyButton.connect('clicked()', \ self.onApply) # # ============Clear button================= # self.clearButton = qt.QPushButton("Clear") self.clearButton.toolTip = "Clear objects rendered in 3D view windows." self.clearButton.enabled = False self.clearButton.setPalette(qt.QPalette(qt.QColor(255,128,128))) self.parent.layout().addWidget(self.clearButton) self.clearButton.connect('clicked()', \ self.onClear) # ===========Finally, Add vertical spacer================ self.layout.addStretch(2)