Ejemplo n.º 1
0
    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)
Ejemplo n.º 2
0
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
Ejemplo n.º 3
0
  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))
Ejemplo n.º 4
0
  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)