예제 #1
0
 def initIcons(self):
     self.Icons = {}
     for (name, icon) in IconDict.items():
         pixmap = qt.QPixmap(icon)
         if QTVERSION < '4.0.0':
             self.Icons[name] = qt.QIconSet(pixmap)
         else:
             self.Icons[name] = qt.QIcon(pixmap)
예제 #2
0
    def _buildToolBar(self,
                      selection=False,
                      colormap=False,
                      imageicons=False,
                      standalonesave=True,
                      standalonezoom=True,
                      profileselection=False):
        if QTVERSION < '4.0.0':
            if qt.qVersion() < '3.0':
                self.colormapIcon = qt.QIconSet(
                    qt.QPixmap(IconDict["colormap16"]))
            else:
                self.colormapIcon = qt.QIconSet(
                    qt.QPixmap(IconDict["colormap"]))
            self.selectionIcon = qt.QIconSet(qt.QPixmap(IconDict["normal"]))
            self.zoomResetIcon = qt.QIconSet(qt.QPixmap(IconDict["zoomreset"]))
            self.printIcon = qt.QIconSet(qt.QPixmap(IconDict["fileprint"]))
            self.saveIcon = qt.QIconSet(qt.QPixmap(IconDict["filesave"]))
            self.xAutoIcon = qt.QIconSet(qt.QPixmap(IconDict["xauto"]))
            self.yAutoIcon = qt.QIconSet(qt.QPixmap(IconDict["yauto"]))
            self.imageIcon = qt.QIconSet(qt.QPixmap(IconDict["image"]))
            self.eraseSelectionIcon = qt.QIconSet(
                qt.QPixmap(IconDict["eraseselect"]))
            self.rectSelectionIcon = qt.QIconSet(
                qt.QPixmap(IconDict["boxselect"]))
            self.brushSelectionIcon = qt.QIconSet(
                qt.QPixmap(IconDict["brushselect"]))
            self.brushIcon = qt.QIconSet(qt.QPixmap(IconDict["brush"]))
            self.hFlipIcon = qt.QIconSet(
                qt.QPixmap(IconDict["gioconda16mirror"]))
        else:
            self.colormapIcon = qt.QIcon(qt.QPixmap(IconDict["colormap"]))
            self.selectionIcon = qt.QIcon(qt.QPixmap(IconDict["normal"]))
            self.zoomResetIcon = qt.QIcon(qt.QPixmap(IconDict["zoomreset"]))
            self.printIcon = qt.QIcon(qt.QPixmap(IconDict["fileprint"]))
            self.saveIcon = qt.QIcon(qt.QPixmap(IconDict["filesave"]))
            self.xAutoIcon = qt.QIcon(qt.QPixmap(IconDict["xauto"]))
            self.yAutoIcon = qt.QIcon(qt.QPixmap(IconDict["yauto"]))
            self.hFlipIcon = qt.QIcon(qt.QPixmap(IconDict["gioconda16mirror"]))
            self.imageIcon = qt.QIcon(qt.QPixmap(IconDict["image"]))
            self.eraseSelectionIcon = qt.QIcon(
                qt.QPixmap(IconDict["eraseselect"]))
            self.rectSelectionIcon = qt.QIcon(qt.QPixmap(
                IconDict["boxselect"]))
            self.brushSelectionIcon = qt.QIcon(
                qt.QPixmap(IconDict["brushselect"]))
            self.brushIcon = qt.QIcon(qt.QPixmap(IconDict["brush"]))
            self.additionalIcon = qt.QIcon(
                qt.QPixmap(IconDict["additionalselect"]))
            self.hLineIcon = qt.QIcon(qt.QPixmap(IconDict["horizontal"]))
            self.vLineIcon = qt.QIcon(qt.QPixmap(IconDict["vertical"]))
            self.lineIcon = qt.QIcon(qt.QPixmap(IconDict["diagonal"]))

        self.toolBar = qt.QWidget(self)
        self.toolBarLayout = qt.QHBoxLayout(self.toolBar)
        self.toolBarLayout.setMargin(0)
        self.toolBarLayout.setSpacing(0)
        self.mainLayout.addWidget(self.toolBar)
        #Autoscale
        if standalonezoom:
            tb = self._addToolButton(self.zoomResetIcon, self._zoomReset,
                                     'Auto-Scale the Graph')
        else:
            tb = self._addToolButton(self.zoomResetIcon, None,
                                     'Auto-Scale the Graph')
        self.zoomResetToolButton = tb
        #y Autoscale
        tb = self._addToolButton(self.yAutoIcon,
                                 self._yAutoScaleToggle,
                                 'Toggle Autoscale Y Axis (On/Off)',
                                 toggle=True,
                                 state=True)
        if qt.qVersion() < '4.0.0':
            tb.setState(qt.QButton.On)
        else:
            tb.setDown(True)
        self.yAutoScaleToolButton = tb
        tb.setDown(True)

        #x Autoscale
        tb = self._addToolButton(self.xAutoIcon,
                                 self._xAutoScaleToggle,
                                 'Toggle Autoscale X Axis (On/Off)',
                                 toggle=True,
                                 state=True)
        self.xAutoScaleToolButton = tb
        tb.setDown(True)

        #colormap
        if colormap:
            tb = self._addToolButton(self.colormapIcon, None,
                                     'Change Colormap')
            self.colormapToolButton = tb

        #flip
        tb = self._addToolButton(self.hFlipIcon, None, 'Flip Horizontal')
        self.hFlipToolButton = tb

        #save
        if standalonesave:
            tb = self._addToolButton(self.saveIcon, self._saveIconSignal,
                                     'Save Graph')
        else:
            tb = self._addToolButton(self.saveIcon, None, 'Save')
        self.saveToolButton = tb

        #Selection
        if selection:
            tb = self._addToolButton(self.selectionIcon,
                                     None,
                                     'Toggle Selection Mode',
                                     toggle=True,
                                     state=False)
            if qt.qVersion() < '4.0.0':
                tb.setState(qt.QButton.Off)
            else:
                tb.setDown(False)
            self.selectionToolButton = tb
        #image selection icons
        if imageicons:
            tb = self._addToolButton(self.imageIcon, None, 'Reset')
            self.imageToolButton = tb

            tb = self._addToolButton(self.eraseSelectionIcon, None,
                                     'Erase Selection')
            self.eraseSelectionToolButton = tb

            tb = self._addToolButton(self.rectSelectionIcon, None,
                                     'Rectangular Selection')
            self.rectSelectionToolButton = tb

            tb = self._addToolButton(self.brushSelectionIcon, None,
                                     'Brush Selection')
            self.brushSelectionToolButton = tb

            tb = self._addToolButton(self.brushIcon, None, 'Select Brush')
            self.brushToolButton = tb
            if QTVERSION > '4.0.0':
                tb = self._addToolButton(self.additionalIcon, None,
                                         'Additional Selections Menu')
                self.additionalSelectionToolButton = tb
        else:
            self.imageToolButton = None

        #picker selection
        self._pickerSelectionButtons = []
        if profileselection:
            self._profileSelection = True
            self._polygonSelection = False
            self._pickerSelectionButtons = []
            if self._profileSelection:
                tb = self._addToolButton(self.hLineIcon,
                                         self._hLineProfileClicked,
                                         'Horizontal Profile Selection',
                                         toggle=True,
                                         state=False)
                self.hLineProfileButton = tb
                self._pickerSelectionButtons.append(tb)

                tb = self._addToolButton(self.vLineIcon,
                                         self._vLineProfileClicked,
                                         'Vertical Profile Selection',
                                         toggle=True,
                                         state=False)
                self.vLineProfileButton = tb
                self._pickerSelectionButtons.append(tb)

                tb = self._addToolButton(self.lineIcon,
                                         self._lineProfileClicked,
                                         'Line Profile Selection',
                                         toggle=True,
                                         state=False)
                self.lineProfileButton = tb
                self._pickerSelectionButtons.append(tb)

                self._pickerSelectionWidthLabel = qt.QLabel(self.toolBar)
                self._pickerSelectionWidthLabel.setText("W:")
                self.toolBar.layout().addWidget(
                    self._pickerSelectionWidthLabel)
                self._pickerSelectionWidthValue = qt.QSpinBox(self.toolBar)
                self._pickerSelectionWidthValue.setMinimum(1)
                self._pickerSelectionWidthValue.setMaximum(1000)
                self.toolBar.layout().addWidget(
                    self._pickerSelectionWidthValue)
                #tb = self._addToolButton(None,
                #                     self._lineProfileClicked,
                #                     'Line Profile Selection',
                #                     toggle=True,
                #                     state=False)
                #tb.setText = "W:"
                #self.lineWidthProfileButton = tb
                #self._pickerSelectionButtons.append(tb)
            if self._polygonSelection:
                print("Polygon selection not implemented yet")
        #hide profile selection buttons
        if imageicons:
            for button in self._pickerSelectionButtons:
                button.hide()

        self.infoWidget = qt.QWidget(self.toolBar)
        self.infoWidget.mainLayout = qt.QHBoxLayout(self.infoWidget)
        self.infoWidget.mainLayout.setMargin(0)
        self.infoWidget.mainLayout.setSpacing(0)
        self.infoWidget.label = qt.QLabel(self.infoWidget)
        self.infoWidget.label.setText("X = ???? Y = ???? Z = ????")
        self.infoWidget.mainLayout.addWidget(self.infoWidget.label)
        self.toolBarLayout.addWidget(self.infoWidget)
        self.infoWidget.hide()

        self.toolBarLayout.addWidget(qt.HorizontalSpacer(self.toolBar))

        # ---print
        tb = self._addToolButton(self.printIcon, self.printGraph,
                                 'Prints the Graph')
예제 #3
0
    def __init__(self, parent=None, filetypelist=None):
        qt.QWidget.__init__(self, parent)
        self.mainLayout= qt.QVBoxLayout(self)
        self.mainLayout.setMargin(0)
        self.mainLayout.setSpacing(0)
        if filetypelist is None:
            self.fileTypeList = ["Spec Files (*mca)",
                                "Spec Files (*dat)",
                                "Spec Files (*spec)",
                                "SPE Files (*SPE)",
                                "EDF Files (*edf)",
                                "EDF Files (*ccd)",
                                "CSV Files (*csv)",
                                "All Files (*)"]
        else:
            self.fileTypeList = filetypelist
        self.lastFileFilter = self.fileTypeList[0]

        # --- file combo/open/close
        self.lastInputDir = PyMcaDirs.inputDir
        self.fileWidget= qt.QWidget(self)
        fileWidgetLayout= qt.QHBoxLayout(self.fileWidget)
        fileWidgetLayout.setMargin(0)
        fileWidgetLayout.setSpacing(0)
        self.fileCombo  = qt.QComboBox(self.fileWidget)
        self.fileCombo.setEditable(0)
        self.mapCombo= {}
        openButton= qt.QToolButton(self.fileWidget)
        if QTVERSION < '4.0.0':
            self.openIcon= qt.QIconSet(qt.QPixmap(icons.fileopen))
            self.closeIcon= qt.QIconSet(qt.QPixmap(icons.fileclose))
            self.specIcon= qt.QIconSet(qt.QPixmap(icons.spec))
            self.reloadIcon = qt.QIconSet(qt.QPixmap(icons.reload))
            openButton.setIconSet(self.openIcon)
            openButton.setSizePolicy(qt.QSizePolicy(qt.QSizePolicy.Fixed, qt.QSizePolicy.Minimum))
            closeButton= qt.QToolButton(self.fileWidget)
            closeButton.setIconSet(self.closeIcon)
            specButton= qt.QToolButton(self.fileWidget)
            specButton.setIconSet(self.specIcon)
            refreshButton= qt.QToolButton(self.fileWidget)
            refreshButton.setIconSet(self.reloadIcon)
        else:
            self.openIcon   = qt.QIcon(qt.QPixmap(icons.fileopen))
            self.closeIcon  = qt.QIcon(qt.QPixmap(icons.fileclose))
            self.reloadIcon = qt.QIcon(qt.QPixmap(icons.reload))
            self.specIcon   = qt.QIcon(qt.QPixmap(icons.spec))

            openButton.setIcon(self.openIcon)
            openButton.setSizePolicy(qt.QSizePolicy(qt.QSizePolicy.Fixed, qt.QSizePolicy.Minimum))
            openButton.setToolTip("Open new file data source")

            closeButton= qt.QToolButton(self.fileWidget)
            closeButton.setIcon(self.closeIcon)
            closeButton.setToolTip("Close current data source")

            refreshButton= qt.QToolButton(self.fileWidget)
            refreshButton.setIcon(self.reloadIcon)
            refreshButton.setToolTip("Refresh data source")

            specButton= qt.QToolButton(self.fileWidget)
            specButton.setIcon(self.specIcon)
            specButton.setToolTip("Open new shared memory source")

        closeButton.setSizePolicy(qt.QSizePolicy(qt.QSizePolicy.Fixed, qt.QSizePolicy.Minimum))
        specButton.setSizePolicy(qt.QSizePolicy(qt.QSizePolicy.Fixed, qt.QSizePolicy.Minimum))
        refreshButton.setSizePolicy(qt.QSizePolicy(qt.QSizePolicy.Fixed, qt.QSizePolicy.Minimum))

        self.connect(openButton, qt.SIGNAL("clicked()"), self._openFileSlot)
        self.connect(closeButton, qt.SIGNAL("clicked()"), self.closeFile)
        self.connect(refreshButton, qt.SIGNAL("clicked()"),
                         self._reload)
            
        self.connect(specButton, qt.SIGNAL("clicked()"), self.openSpec)
        self.connect(self.fileCombo, qt.SIGNAL("activated(const QString &)"),
                                                     self._fileSelection)

        fileWidgetLayout.addWidget(self.fileCombo)
        fileWidgetLayout.addWidget(openButton)            
        fileWidgetLayout.addWidget(closeButton)
        fileWidgetLayout.addWidget(specButton)
        if sys.platform == "win32":specButton.hide()
        fileWidgetLayout.addWidget(refreshButton)
        self.specButton = specButton
        self.mainLayout.addWidget(self.fileWidget)
예제 #4
0
    def _initIcons(self):
        if QTVERSION < '4.0.0':
            self.normalIcon = qt.QIconSet(qt.QPixmap(IconDict["normal"]))
            self.zoomIcon = qt.QIconSet(qt.QPixmap(IconDict["zoom"]))
            self.roiIcon = qt.QIconSet(qt.QPixmap(IconDict["roi"]))
            self.peakIcon = qt.QIconSet(qt.QPixmap(IconDict["peak"]))

            self.zoomResetIcon = qt.QIconSet(qt.QPixmap(IconDict["zoomreset"]))
            self.roiResetIcon = qt.QIconSet(qt.QPixmap(IconDict["roireset"]))
            self.peakResetIcon = qt.QIconSet(qt.QPixmap(IconDict["peakreset"]))
            self.refreshIcon = qt.QIconSet(qt.QPixmap(IconDict["reload"]))

            self.logxIcon = qt.QIconSet(qt.QPixmap(IconDict["logx"]))
            self.logyIcon = qt.QIconSet(qt.QPixmap(IconDict["logy"]))
            self.xAutoIcon = qt.QIconSet(qt.QPixmap(IconDict["xauto"]))
            self.yAutoIcon = qt.QIconSet(qt.QPixmap(IconDict["yauto"]))
            self.togglePointsIcon = qt.QIconSet(
                qt.QPixmap(IconDict["togglepoints"]))
            self.fitIcon = qt.QIconSet(qt.QPixmap(IconDict["fit"]))
            self.searchIcon = qt.QIconSet(qt.QPixmap(IconDict["peaksearch"]))

            self.averageIcon = qt.QIconSet(qt.QPixmap(IconDict["average16"]))
            self.deriveIcon = qt.QIconSet(qt.QPixmap(IconDict["derive"]))
            self.smoothIcon = qt.QIconSet(qt.QPixmap(IconDict["smooth"]))
            self.swapSignIcon = qt.QIconSet(qt.QPixmap(IconDict["swapsign"]))
            self.yMinToZeroIcon = qt.QIconSet(
                qt.QPixmap(IconDict["ymintozero"]))
            self.subtractIcon = qt.QIconSet(qt.QPixmap(IconDict["subtract"]))
            self.printIcon = qt.QIconSet(qt.QPixmap(IconDict["fileprint"]))
            self.saveIcon = qt.QIconSet(qt.QPixmap(IconDict["filesave"]))
        else:
            self.normalIcon = qt.QIcon(qt.QPixmap(IconDict["normal"]))
            self.zoomIcon = qt.QIcon(qt.QPixmap(IconDict["zoom"]))
            self.roiIcon = qt.QIcon(qt.QPixmap(IconDict["roi"]))
            self.peakIcon = qt.QIcon(qt.QPixmap(IconDict["peak"]))

            self.zoomResetIcon = qt.QIcon(qt.QPixmap(IconDict["zoomreset"]))
            self.roiResetIcon = qt.QIcon(qt.QPixmap(IconDict["roireset"]))
            self.peakResetIcon = qt.QIcon(qt.QPixmap(IconDict["peakreset"]))
            self.refreshIcon = qt.QIcon(qt.QPixmap(IconDict["reload"]))

            self.logxIcon = qt.QIcon(qt.QPixmap(IconDict["logx"]))
            self.logyIcon = qt.QIcon(qt.QPixmap(IconDict["logy"]))
            self.xAutoIcon = qt.QIcon(qt.QPixmap(IconDict["xauto"]))
            self.yAutoIcon = qt.QIcon(qt.QPixmap(IconDict["yauto"]))
            self.togglePointsIcon = qt.QIcon(
                qt.QPixmap(IconDict["togglepoints"]))

            self.fitIcon = qt.QIcon(qt.QPixmap(IconDict["fit"]))
            self.searchIcon = qt.QIcon(qt.QPixmap(IconDict["peaksearch"]))

            self.averageIcon = qt.QIcon(qt.QPixmap(IconDict["average16"]))
            self.deriveIcon = qt.QIcon(qt.QPixmap(IconDict["derive"]))
            self.smoothIcon = qt.QIcon(qt.QPixmap(IconDict["smooth"]))
            self.swapSignIcon = qt.QIcon(qt.QPixmap(IconDict["swapsign"]))
            self.yMinToZeroIcon = qt.QIcon(qt.QPixmap(IconDict["ymintozero"]))
            self.subtractIcon = qt.QIcon(qt.QPixmap(IconDict["subtract"]))

            self.printIcon = qt.QIcon(qt.QPixmap(IconDict["fileprint"]))
            self.saveIcon = qt.QIcon(qt.QPixmap(IconDict["filesave"]))

            self.pluginIcon = qt.QIcon(qt.QPixmap(IconDict["plugin"]))
예제 #5
0
    def __init__(self, parent=None, name="SPSSelector", fl=0):
        qt.QWidget.__init__(self, parent, name, fl)

        self.dataSource = None

        self.data = None
        self.currentSpec = None
        self.currentArray = None
        self.selection = None
        self.openFile = self.refreshSpecList

        self.selectPixmap = qt.QPixmap(icons.selected)
        self.unselectPixamp = qt.QPixmap(icons.unselected)

        mainLayout = qt.QVBoxLayout(self)

        # --- spec name selection
        specWidget = qt.QWidget(self)
        self.specCombo = qt.QComboBox(specWidget)
        self.specCombo.setEditable(0)
        self.reload = qt.QIconSet(qt.QPixmap(icons.reload))
        refreshButton = qt.QToolButton(specWidget)
        refreshButton.setIconSet(self.reload)
        refreshButton.setSizePolicy(
            qt.QSizePolicy(qt.QSizePolicy.Fixed, qt.QSizePolicy.Minimum))
        self.closeIcon = qt.QIconSet(qt.QPixmap(icons.fileclose))
        closeButton = qt.QToolButton(specWidget)
        closeButton.setIconSet(self.closeIcon)
        closeButton.setSizePolicy(
            qt.QSizePolicy(qt.QSizePolicy.Fixed, qt.QSizePolicy.Minimum))
        specLayout = qt.QHBoxLayout(specWidget)
        specLayout.addWidget(self.specCombo)
        specLayout.addWidget(refreshButton)
        specLayout.addWidget(closeButton)

        self.connect(refreshButton, qt.SIGNAL("clicked()"),
                     self.refreshSpecList)
        self.connect(closeButton, qt.SIGNAL("clicked()"),
                     self.closeCurrentSpec)
        self.connect(self.specCombo, qt.SIGNAL("activated(const QString &)"),
                     self.refreshArrayList)

        # --- splitter
        self.splitter = qt.QSplitter(self)
        self.splitter.setOrientation(qt.QSplitter.Vertical)

        # --- shm array list
        self.arrayList = qt.QListView(self.splitter, "ShmArrayList")
        self.arrayList.addColumn("")
        self.arrayList.addColumn("Array Name")
        self.arrayList.addColumn("Rows")
        self.arrayList.addColumn("Cols")
        self.arrayList.setSorting(-1)
        self.arrayList.header().setClickEnabled(0, -1)
        self.arrayList.setAllColumnsShowFocus(1)
        self.arrayList.setSelectionMode(qt.QListView.Single)

        self.connect(self.arrayList, qt.SIGNAL("selectionChanged()"),
                     self.__arraySelection)

        # --- array parameter
        self.paramIndex = {}
        self.paramWidget = qt.QWidgetStack(self.splitter)
        for type in self.WidgetArrays.keys():
            widclass = self.WidgetArrays[type]
            wid = widclass(self.paramWidget)
            self.paramWidget.addWidget(wid)
            self.paramIndex[type] = self.paramWidget.id(wid)

        # --- command buttons
        butWidget = qt.QWidget(self)
        butWidget.setSizePolicy(
            qt.QSizePolicy(qt.QSizePolicy.Minimum, qt.QSizePolicy.Minimum))
        addButton = qt.QPushButton("Add", butWidget)
        removeButton = qt.QPushButton("Remove", butWidget)
        replaceButton = qt.QPushButton("Replace", butWidget)

        butLayout = qt.QHBoxLayout(butWidget)
        butLayout.addWidget(removeButton)
        butLayout.addWidget(replaceButton)
        butLayout.addWidget(addButton)
        butLayout.setMargin(5)

        self.connect(addButton, qt.SIGNAL("clicked()"), self.__addClicked)
        self.connect(replaceButton, qt.SIGNAL("clicked()"),
                     self.__replaceClicked)
        self.connect(removeButton, qt.SIGNAL("clicked()"),
                     self.__removeClicked)

        # --- main layout
        mainLayout.setMargin(5)
        mainLayout.setSpacing(5)
        mainLayout.addWidget(specWidget)
        mainLayout.addWidget(self.splitter)
        mainLayout.addWidget(butWidget)