예제 #1
0
    def makeAction(self):
        """Create all the actions used on the toolbars and menus """

        self.zoomAct = Qt.QAction(Qt.QIcon('img/zoom-original.svg'),
                                  self._tr('&Autoscale'), self)
        Qt.QObject.connect(self.zoomAct, Qt.SIGNAL("triggered()"),
                           self.clearZoomStack)

        self.logScaleAct = Qt.QAction(Qt.QIcon('img/log-scale.svg'),
                                      self._tr('Show &logarithmic scale'),
                                      self)
        self.logScaleAct.setCheckable(True)
        Qt.QObject.connect(self.logScaleAct, Qt.SIGNAL("triggered()"),
                           self.toggleLogScale)

        self.printAct = Qt.QAction(Qt.QIcon('img/print.svg'),
                                   self._tr('Print...'), self)
        Qt.QObject.connect(self.printAct, Qt.SIGNAL("triggered()"),
                           self.printPlot)

        self.exportPdfAct = Qt.QAction(Qt.QIcon('img/export-pdf.svg'),
                                       self._tr('Export to pdf...'), self)
        Qt.QObject.connect(self.exportPdfAct, Qt.SIGNAL("triggered()"),
                           self.exportPDF)

        self.exportSvgAct = Qt.QAction(Qt.QIcon('img/export-svg.svg'),
                                       self._tr('Export to svg...'), self)
        Qt.QObject.connect(self.exportSvgAct, Qt.SIGNAL("triggered()"),
                           self.exportSVG)
예제 #2
0
    def createActions(self):
        """ Create the widget's actions """

        self.quitAct = Qt.QAction(_tr("&Quit"), self)
        self.quitAct.setIcon(Qt.QIcon('img/quit.svgz'))
        Qt.QObject.connect(self.quitAct, Qt.SIGNAL("triggered()"),
                           self.confirmQuit)
        self.quitAct.setShortcut(_tr('Ctrl+Q'))

        self.cancelAct = Qt.QAction(_tr("Stop"), self)
        self.cancelAct.setIcon(Qt.QIcon('img/stop.svgz'))
        Qt.QObject.connect(self.cancelAct, Qt.SIGNAL("triggered()"),
                           self.cancelConvert)
        self.cancelAct.setEnabled(False)

        self.startAct = Qt.QAction(Qt.QIcon('img/start.svgz'), _tr('Start'),
                                   self)
        Qt.QObject.connect(self.startAct, Qt.SIGNAL("triggered()"),
                           self.startConvert)

        self.configureAct = Qt.QAction(self)
        self.configureAct.setIcon(Qt.QIcon('img/config.svgz'))
        self.configureAct.setText(_tr('Show options'))
        Qt.QObject.connect(self.configureAct, Qt.SIGNAL("triggered()"),
                           lambda: self.configWidget.setVisible(True))
예제 #3
0
파일: hlaGui.py 프로젝트: ChannelFinder/hla
    def __init__(self, selection_highlighter_QwtPlotCurve, *args):
        """Constructor"""

        Qwt.QwtPlotPicker.__init__(self, *args)

        self.connect(self, Qt.SIGNAL("selected(const QwtDoublePoint&)"),
                     self.highlight_selected_curve)

        self.selection_highlighter_curve = \
            selection_highlighter_QwtPlotCurve

        self.selected_curve = []

        QwtPlot_obj = self.plot()
        QwtPlot_obj.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)

        # Actions
        self.actionLineWidth = Qt.QAction(Qt.QIcon(), "Line Width",
                                          QwtPlot_obj)
        self.connect(self.actionLineWidth, Qt.SIGNAL("triggered()"),
                     self._slotActionLineWidthTriggered)
        self.actionLineColor = Qt.QAction(Qt.QIcon(), "Line Color",
                                          QwtPlot_obj)
        self.connect(self.actionLineColor, Qt.SIGNAL("triggered()"),
                     self._slotActionLineColorTriggered)

        # Popup Menu
        self.popMenu = QMenu(QwtPlot_obj)
        self.popMenu.addAction(self.actionLineWidth)
        self.popMenu.addSeparator()
        self.popMenu.addAction(self.actionLineColor)
예제 #4
0
    def init(self):
        self.__axis_provider = dict()
        self.__curves_by_provider = dict()
        self.graphLayout = Qt.QVBoxLayout()
        self.graphSubLayout = Qt.QHBoxLayout()

        self.qtBlissGraph = QtBlissGraph()
        self.graphLayout.addWidget(self.qtBlissGraph)

        self.printPushButton = Qt.QPushButton("Print")
        self.graphSubLayout.addWidget(self.printPushButton)
        Qt.QObject.connect(self.printPushButton, Qt.SIGNAL("clicked()"),
                           self.printPushButtonClicked)

        self.current_scale = "linear"
        self.scalePushButton = Qt.QPushButton("Scale")
        self.scaleMenu = Qt.QMenu(self.scalePushButton)
        self.scaleActionGroup = Qt.QActionGroup(self.scaleMenu)
        self.scaleMenuLinear = Qt.QAction("Linear", self.scaleActionGroup)
        self.scaleMenuLinear.setCheckable(True)
        self.scaleMenu.addAction(self.scaleMenuLinear)
        self.scaleMenuLogarithmic = Qt.QAction("Logarithmic",
                                               self.scaleActionGroup)
        self.scaleMenuLogarithmic.setCheckable(True)
        self.scaleMenu.addAction(self.scaleMenuLogarithmic)
        Qt.QObject.connect(self.scaleActionGroup,
                           Qt.SIGNAL("triggered(QAction*)"),
                           self.scaleActionGroupTriggered)
        self.scalePushButton.setMenu(self.scaleMenu)
        self.graphSubLayout.addWidget(self.scalePushButton)

        self.gridPushButton = Qt.QPushButton("Grid")
        self.gridMenu = Qt.QMenu(self.gridPushButton)
        self.gridActionGroup = Qt.QActionGroup(self.gridMenu)
        self.gridMenuEnable = Qt.QAction("Enable", self.gridActionGroup)
        self.gridMenuEnable.setCheckable(True)
        self.gridMenu.addAction(self.gridMenuEnable)
        self.gridMenuDisable = Qt.QAction("Disable", self.gridActionGroup)
        self.gridMenuDisable.setCheckable(True)
        self.gridMenuDisable.setChecked(True)
        self.gridMenu.addAction(self.gridMenuDisable)
        Qt.QObject.connect(self.gridActionGroup,
                           Qt.SIGNAL("triggered(QAction*)"),
                           self.gridActionGroupTriggered)
        self.gridPushButton.setMenu(self.gridMenu)
        self.graphSubLayout.addWidget(self.gridPushButton)

        self.resetPushButton = Qt.QPushButton("Reset")
        self.graphSubLayout.addWidget(self.resetPushButton)
        Qt.QObject.connect(self.resetPushButton, Qt.SIGNAL("clicked()"),
                           self.resetPushButtonClicked)

        self.graphLayout.addLayout(self.graphSubLayout)
        self.brick_widget.setLayout(self.graphLayout)

        self.curveData = {}
        self.timeAxisX = False
        self.timeAxisElapsedTime = True
        self.windowSize = None
예제 #5
0
    def createActions(self):
        self.settingsAction = Qt.QAction("&Settings", self)
        Qt.QObject.connect(self.settingsAction, Qt.SIGNAL("triggered()"), self.openSettings)

        self.aboutAction = Qt.QAction("&About", self)
        Qt.QObject.connect(self.aboutAction, Qt.SIGNAL("triggered()"), self.about)
        
        self.quitAction = Qt.QAction("&Quit", self)
        Qt.QObject.connect(self.quitAction, Qt.SIGNAL("triggered()"), Qt.qApp, Qt.SLOT("quit()"))
예제 #6
0
    def initUI(self):               
        exitAction = Qt.QAction("&Quit", self)
        #exitAction = QtGui.QAction(QtGui.QIcon('exit.png'), '&Exit', self)        
        #exitAction.setShortcut('Ctrl+Q')
        #exitAction.setStatusTip('Exit application')
        exitAction.triggered.connect(self.close)

        view_results = Qt.QAction("&View Raw Data", self)
        view_results.triggered.connect(self.view_results)  

        load_results = Qt.QAction("&Load Raw Data", self)
        load_results.triggered.connect(self.load_results)

        analyseResults1 = Qt.QAction("&Grid Time Analysis", self)
        analyseResults1.triggered.connect(self.grid_time_analysis)

        analyseResults2 = Qt.QAction("ROI Time Analysis", self)
        analyseResults2.triggered.connect(self.roi_time_analysis)

        analyseResults3 = Qt.QAction("&Animal Movement Scatterplot", self)
        analyseResults3.triggered.connect(self.animal_movement_scatterplot)

        analyseResults4 = Qt.QAction("&Animal Movement Heatmap", self)
        analyseResults4.triggered.connect(self.animal_movement_heatmap)

        analyseResults5 = Qt.QAction("&Locomotor Parameters", self)
        analyseResults5.triggered.connect(self.locomotor_parameters)

        menubar = self.menuBar()
        fileMenu = menubar.addMenu('&File')
        fileMenu.addAction(exitAction)
        
        resultsMenu = menubar.addMenu("&Results")
        resultsMenu.addAction(view_results)
        resultsMenu.addSeparator()
        resultsMenu.addAction(load_results)
        
        analysisMenu = menubar.addMenu("&Data Analysis")
        analysisMenu.addAction(analyseResults1)
        analysisMenu.addAction(analyseResults2)
        analysisMenu.addAction(analyseResults3)
        analysisMenu.addAction(analyseResults4)
        analysisMenu.addAction(analyseResults5)
                
        self.setMinimumWidth(1150)
        #self.setMinimumHeight(800)
        self.setWindowTitle(self.tr("RATRACTION"))
        self.show()
예제 #7
0
 def createAction(self,
                  text="",
                  slot=None,
                  shortcut=None,
                  icon=None,
                  tip=None,
                  checkable=False,
                  signal="triggered()"):
     action = Qt.QAction(text, self)
     if icon is not None:
         action.setIcon(Qt.QIcon(icon))
     if shortcut is not None:
         action.setShortcut(shortcut)
     if tip is not None:
         action.setToolTip(tip)
         action.setStatusTip(tip)
     if slot is not None:
         Qt.QObject.connect(action, Qt.SIGNAL(signal), slot)
     if checkable:
         action.setCheckable(True)
     return action
예제 #8
0
    def makeAction(self):
        """Create all the actions used on the toolbars and menus """

        self.openAct = Qt.QAction(Qt.QIcon('img/open.svg'), _tr('&Open...'),
                                  self)
        self.openAct.setShortcut(_tr('Ctrl+o'))
        Qt.QObject.connect(self.openAct, Qt.SIGNAL("triggered()"),
                           self.openFile)

        self.saveAsAct = Qt.QAction(Qt.QIcon('img/saveas.svg'),
                                    _tr('&Save as...'), self)
        self.saveAsAct.setShortcut(_tr('Ctrl+S'))
        Qt.QObject.connect(self.saveAsAct, Qt.SIGNAL("triggered()"),
                           self.saveAs)

        self.quitAct = Qt.QAction(Qt.QIcon('img/quit.svg'), _tr('&Quit'), self)
        self.quitAct.setShortcut(_tr('Ctrl+Q'))
        Qt.QObject.connect(self.quitAct, Qt.SIGNAL("triggered()"), self,
                           Qt.SLOT("close()"))

        self.startAct = Qt.QAction(Qt.QIcon('img/start.svg'), _tr('Start'),
                                   self)
        Qt.QObject.connect(self.startAct, Qt.SIGNAL("triggered()"),
                           self.startMeasurement)
        self.startAct.setCheckable(True)

        self.clearAct = Qt.QAction(Qt.QIcon('img/stop.svg'), _tr('Stop'), self)
        Qt.QObject.connect(self.clearAct, Qt.SIGNAL("triggered()"),
                           self.clearMeasurement)

        self.pauseAct = Qt.QAction(Qt.QIcon('img/pause.svg'), _tr('Pause'),
                                   self)
        Qt.QObject.connect(self.pauseAct, Qt.SIGNAL("triggered()"),
                           self.pauseMeasurement)
        self.pauseAct.setCheckable(True)

        self.configureAct = self.configDock.toggleViewAction()
        self.configureAct.setIcon(Qt.QIcon('img/config.svg'))
        self.configureAct.setText(_tr('Show options'))
예제 #9
0
    def __init__(__, argv=[]):
        qt.QWidget.__init__(__)
        __.setWindowIcon(qt.QIcon("ico/fuz.ico"))
        __.setWindowTitle("Fusion files")
        __.path = get_path(sys.argv[0])
        __.archive = ""
        temp = ""
        if len(argv) > 1:
            temp = unicode(" ".join(argv[1:]), "cp1252").replace("\\", "/")
        if get_ext(temp) == "fuz":
            __.mode = True
            __.archive = temp[:]
        else:
            __.mode = False
        __.archive_ind = ""
        __.index_dir = (0, 0)

        __.Tabs = qt.QTabWidget(__)
        __.Struct = qt.QWidget(__)
        __.Struct.Archive_name = qt.QPushButton(__.archive, __.Struct)
        __.Struct.Add_dir = qt.QPushButton("Ajouter un dossier", __.Struct)
        __.Struct.Add_dir.setVisible(False)
        __.Struct.Add_file = qt.QPushButton("Ajouter des fichiers", __.Struct)
        __.Struct.Ouvrir_dossier = qt.QPushButton("Ouvrir dossier", __.Struct)
        __.Struct.Dossier_parent = qt.QPushButton("Dossier parent", __.Struct)
        __.Struct.Extraire = qt.QPushButton("Tout extraire", __.Struct)
        __.Struct.Extraire_dossier = qt.QPushButton("Extraire dossier",
                                                    __.Struct)
        __.Struct.Extraire_file = qt.QPushButton("Extraire fichier", __.Struct)
        __.Struct.Action_ouvrir_dossier = qt.QAction(__)
        __.Struct.Name = qt.QLineEdit(__.Struct)
        __.Struct.Name.setReadOnly(True)

        __.Struct.Dossier = qt.QLabel(__.Struct)
        __.Struct.Dossier.setText("Dossiers : 0")
        __.Struct.List_dossier = qt.QListWidget(__.Struct)

        __.Struct.Fichier = qt.QLabel(__.Struct)
        __.Struct.Fichier.setText("Fichiers : 0")
        __.Struct.List_fichier = qt.QListWidget(__.Struct)

        __.Struct2 = qt.QWidget(__)
        __.Struct2.Layout = qt.QGridLayout(__.Struct2)
        __.Struct2.Archive_name = qt.QLineEdit(__.Struct2)
        __.Struct2.Dossier = qt.QLabel(__.Struct2)
        __.Struct2.List_dossier = qt.QListWidget(__.Struct2)
        if is_dir(temp):
            __.Struct2.List_dossier.addItem(temp)
            __.Struct2.Dossier.setText("Dossiers : 1")
        else:
            __.Struct2.Dossier.setText("Dossiers : 0")
        __.Struct2.Add_dir = qt.QPushButton("Ajouter un dossier", __.Struct2)
        __.Struct2.Suppr_dossier = qt.QPushButton("Retirer un dossier",
                                                  __.Struct2)

        __.Struct2.Fichier = qt.QLabel(__.Struct2)
        __.Struct2.List_fichier = qt.QListWidget(__.Struct2)
        if is_file(temp):
            __.Struct2.List_fichier.addItem(temp)
            __.Struct2.Fichier.setText("Fichiers : 1")
        else:
            __.Struct2.Fichier.setText("Fichiers : 0")
        __.Struct2.Add_file = qt.QPushButton("Ajouter des fichiers",
                                             __.Struct2)
        __.Struct2.Suppr_fichier = qt.QPushButton("Retirer un fichier",
                                                  __.Struct2)
        __.Struct2.Fusionner = qt.QPushButton("Fusionner", __.Struct2)
        __.Struct2.Autoextract = qt.QPushButton("Créer auto-extractible",
                                                __.Struct2)

        __.Path = qt.QPushButton(__)
        __.Path.setWhatsThis("Fusionner/Extraire vers")

        #__.Menu = qt.QMenuBar(__)
        #__.Menu_fichier =  __.Menu.addMenu("Fichier")
        #__.Action_ouvrir = __.Menu_fichier.addAction("Ouvrir archive")
        __.Action_ouvrir = qt.QAction("Ouvrir archive", __)

        __.Status_bar = qt.QStatusBar(__)
        __.Status_bar.showMessage("By W3YZOH0RTH")
        __.Status_progress = qt.QProgressBar(__.Status_bar)
        __.Status_bar.addPermanentWidget(__.Status_progress)

        __.Tabs.addTab(__.Struct2, "Fusion")
        __.Tabs.addTab(__.Struct, "Extraction")
        if __.mode: __.Tabs.setCurrentIndex(1)

        __.VLayout = qt.QVBoxLayout(__)
        #__.VLayout.addWidget(__.Menu)
        __.VLayout.addWidget(__.Path)
        __.VLayout.addWidget(__.Tabs)
        __.VLayout.addWidget(__.Status_bar)
        __.setLayout(__.VLayout)

        __.Struct.Layout = qt.QGridLayout(__.Struct)
        __.Struct.Layout.addWidget(__.Struct.Archive_name, 0, 0, 1, 4)
        __.Struct.Layout.addWidget(__.Struct.Name, 1, 0, 1, 4)
        __.Struct.Layout.addWidget(__.Struct.Add_file, 2, 2, 1, 2)
        #__.Struct.Layout.addWidget(__.Struct.Add_dir, 2, 0, 1, 2)
        __.Struct.Layout.addWidget(__.Struct.Fichier, 3, 2, 1, 1)
        __.Struct.Layout.addWidget(__.Struct.Dossier, 3, 0, 1, 1)
        __.Struct.Layout.addWidget(__.Struct.List_dossier, 4, 0, 1, 2)
        __.Struct.Layout.addWidget(__.Struct.List_fichier, 4, 2, 1, 2)
        __.Struct.Layout.addWidget(__.Struct.Ouvrir_dossier, 5, 0, 1, 1)
        __.Struct.Layout.addWidget(__.Struct.Dossier_parent, 5, 1, 1, 1)
        __.Struct.Layout.addWidget(__.Struct.Extraire_dossier, 6, 0, 1, 2)
        __.Struct.Layout.addWidget(__.Struct.Extraire_file, 6, 2, 1, 2)
        __.Struct.Layout.addWidget(__.Struct.Extraire, 5, 2, 1, 2)
        __.Struct.setLayout(__.Struct.Layout)

        __.Struct2.Layout.addWidget(__.Struct2.Archive_name, 0, 0, 1, 4)
        __.Struct2.Layout.addWidget(__.Struct2.Add_dir, 1, 0, 1, 2)
        __.Struct2.Layout.addWidget(__.Struct2.Add_file, 1, 2, 1, 2)
        __.Struct2.Layout.addWidget(__.Struct2.Fichier, 2, 2, 1, 1)
        __.Struct2.Layout.addWidget(__.Struct2.Dossier, 2, 0, 1, 1)
        __.Struct2.Layout.addWidget(__.Struct2.List_dossier, 3, 0, 1, 2)
        __.Struct2.Layout.addWidget(__.Struct2.List_fichier, 3, 2, 1, 2)
        __.Struct2.Layout.addWidget(__.Struct2.Suppr_dossier, 4, 0, 1, 2)
        __.Struct2.Layout.addWidget(__.Struct2.Suppr_fichier, 4, 2, 1, 2)
        __.Struct2.Layout.addWidget(__.Struct2.Fusionner, 6, 0, 1, 2)
        __.Struct2.Layout.addWidget(__.Struct2.Autoextract, 6, 2, 1, 2)
        __.Struct2.setLayout(__.Struct2.Layout)

        qt.qApp.connect(__.Action_ouvrir, qt.SIGNAL("triggered()"),
                        __.slot_ouvrir)
        qt.qApp.connect(__.Struct.Action_ouvrir_dossier,
                        qt.SIGNAL("triggered()"), __.slot_open_dir)
        qt.qApp.connect(__.Struct.Archive_name, qt.SIGNAL("clicked()"),
                        __.Action_ouvrir.trigger)
        qt.qApp.connect(__.Struct.Ouvrir_dossier, qt.SIGNAL("clicked()"),
                        __.Struct.Action_ouvrir_dossier.trigger)
        qt.qApp.connect(__.Struct.Dossier_parent, qt.SIGNAL("clicked()"),
                        __.slot_retour)
        qt.qApp.connect(__.Struct.Extraire, qt.SIGNAL("clicked()"),
                        __.slot_extraire_all)
        qt.qApp.connect(__.Struct.Extraire_file, qt.SIGNAL("clicked()"),
                        __.slot_extraire_file)
        qt.qApp.connect(__.Struct.Extraire_dossier, qt.SIGNAL("clicked()"),
                        __.slot_extraire_dir)
        qt.qApp.connect(__.Struct.Add_file, qt.SIGNAL("clicked()"),
                        __.slot_add_fichier)
        qt.qApp.connect(__.Struct.Add_dir, qt.SIGNAL("clicked()"),
                        __.slot_add_dossier)
        qt.qApp.connect(__.Struct2.Add_file, qt.SIGNAL("clicked()"),
                        __.slot_add_fichier)
        qt.qApp.connect(__.Struct2.Add_dir, qt.SIGNAL("clicked()"),
                        __.slot_add_dossier)
        qt.qApp.connect(__.Struct2.Suppr_fichier, qt.SIGNAL("clicked()"),
                        __.slot_suppr_fichier)
        qt.qApp.connect(__.Struct2.Suppr_dossier, qt.SIGNAL("clicked()"),
                        __.slot_suppr_dossier)
        qt.qApp.connect(__.Struct2.Fusionner, qt.SIGNAL("clicked()"),
                        __.slot_fusionner)
        qt.qApp.connect(__.Struct2.Autoextract,
                        qt.SIGNAL("clicked()"),
                        lambda fct=create_autoextract: __.slot_fusionner(fct))
        qt.qApp.connect(__.Path, qt.SIGNAL("clicked()"), __.slot_change_path)
        #qt.qApp.connect(__.Struct.List_dossier, qt.SIGNAL("itemSelectionChanged()"), __.Struct.Action_ouvrir_dossier.trigger)
        if __.archive: __.slot_ouvrir(True)
    def __init__(self, plot_key="", parent=None):
        Qwt.QwtPlot.__init__(self, parent)

        self.mainwin = parent and parent.topLevelWidget()

        # make a QwtPlot widget
        self.plotLayout().setMargin(0)
        self.plotLayout().setCanvasMargin(0)
        self.plotLayout().setAlignCanvasToScales(1)
        self.setlegend = 1
        #     self.setAutoLegend(self.setlegend)
        #     self.enableLegend(True)
        #     self.setLegendPos(Qwt.Right)
        # set fonts for titles
        # first create copy of standard application font..
        self.title_font = Qt.QFont(Qt.QApplication.font())
        fi = Qt.QFontInfo(self.title_font)
        # and scale it down to 70%
        self.title_font.setPointSize(fi.pointSize() * 0.7)

        # set axis titles
        self.title = None
        text = Qwt.QwtText('Histogram')
        text.setFont(self.title_font)
        self.setTitle(text)
        text = Qwt.QwtText('number in bin')
        text.setFont(self.title_font)
        self.setTitle(text)
        self.setAxisTitle(Qwt.QwtPlot.yLeft, text)
        #     self.zoomStack = []

        # set default background to  whatever QApplication sez it should be!
        #     self.setCanvasBackground(Qt.QApplication.palette().active().base())

        #create a context menu to over-ride the one from Oleg
        if self.mainwin:
            self.menu = Qt.QMenu(self.mainwin)
        else:
            self.menu = Qt.QMenu(self)
        self._toggle_legend = Qt.QAction('Toggle Legend', self)
        self.menu.addAction(self._toggle_legend)
        self.connect(self._toggle_legend, Qt.SIGNAL("triggered()"),
                     self.handle_toggle_legend)

        self._disable_zoomer = Qt.QAction('Disable Zoomer', self)
        self.menu.addAction(self._disable_zoomer)
        self.connect(self._disable_zoomer, Qt.SIGNAL("triggered()"),
                     self.handle_disable_zoomer)

        printer = Qt.QAction('Print plot', self)
        #     printer.setIconSet(pixmaps.fileprint.iconset());
        self.connect(printer, Qt.SIGNAL("triggered()"), self.printplot)
        self.menu.addAction(printer)

        self.spy = Spy(self.canvas())
        self.zoom_outline = Qwt.QwtPlotCurve()

        #       self.connect(self, SIGNAL("legendClicked(QwtPlotItem*)"),
        #                    self.toggleVisibility)

        self.connect(self.spy, Qt.SIGNAL("MouseMove"), self.setPosition)
        self.connect(self.spy, Qt.SIGNAL("MousePress"), self.onMousePressed)
        self.connect(self.spy, Qt.SIGNAL("MouseRelease"), self.onMouseReleased)
예제 #11
0
파일: hlaPlot.py 프로젝트: huyong1979/aphla
    def _createActions(self):
        """"""

        self.actionGroup = ActionObjectsGroup()

        self.actions_dict = {}

        # Action for Zoom Box
        zoomBoxAction = Qt.QAction(Qt.QIcon(":/zoom_in.png"),
                                   "Zoom &Box", self)
        zoomBoxAction.setCheckable(True)
        zoomBoxAction.setToolTip("Zoom into a region of interest")
        zoomBoxAction.setStatusTip("Zoom into a region of interest")
        zoomBoxAction.setObjectName("action_zoom_box")
        self.actionGroup.addAction(zoomBoxAction)
        self.actions_dict["action_zoom_box"] = zoomBoxAction
        self.connect(zoomBoxAction, Qt.SIGNAL("toggled(bool)"),
                     self._enableZoomers)

        # Action for Pan XY
        panXYAction = Qt.QAction(Qt.QIcon(":/hand.png"),
                                 "&Pan XY", self)
        panXYAction.setCheckable(True)
        panXYAction.setObjectName("action_pan_xy")
        self.actionGroup.addAction(panXYAction)
        self.actions_dict["action_pan_xy"] = panXYAction
        self.connect(panXYAction, Qt.SIGNAL("toggled(bool)"),
                     self._enablePanners)

        # Action for Edit Plot
        editPlotAction = Qt.QAction(Qt.QIcon(":/pointer.png"),
                                    "&Edit Plot", self)
        editPlotAction.setCheckable(True)
        editPlotAction.setObjectName("action_edit_plot")
        self.actionGroup.addAction(editPlotAction)
        self.actions_dict["action_edit_plot"] = editPlotAction
        self.connect(editPlotAction, Qt.SIGNAL("toggled(bool)"),
                     self._enablePlotEditors)

        # Action for Data Cursor
        dataCursorAction = Qt.QAction(Qt.QIcon(":/data_cursor.png"),
                                      "Data &Cursor", self)
        dataCursorAction.setCheckable(True)
        dataCursorAction.setObjectName("action_data_cursor")
        self.actionGroup.addAction(dataCursorAction)
        self.actions_dict["action_data_cursor"] = dataCursorAction
        self.connect(dataCursorAction, Qt.SIGNAL("toggled(bool)"),
                     self._enableDataCursors)


        # TODO:
        # expandToFillAction (just enable auto scale) setCheckable = False
        # verticalZoomInAction
        # horizontalZoomInAction
        # backwardAction
        # forwardAction
        # screenshotAction


        # Connect these actions to the slot ensuring that the selection
        # of actions is mutually exclusive, or no action is selected.
        self.connect(zoomBoxAction, Qt.SIGNAL("triggered()"),
                     self._enforceMutualExclusiveness)
        self.connect(panXYAction, Qt.SIGNAL("triggered()"),
                     self._enforceMutualExclusiveness)
        self.connect(editPlotAction, Qt.SIGNAL("triggered()"),
                     self._enforceMutualExclusiveness)
        self.connect(dataCursorAction, Qt.SIGNAL("triggered()"),
                     self._enforceMutualExclusiveness)

        self.actionGroup.update_check_states()
예제 #12
0
 def addAction(self, menu, text, func):
     action = Qt.QAction(text, self)
     Qt.QObject.connect(action, Qt.SIGNAL("triggered(bool)"), func)
     menu.addAction(action)
     return action
예제 #13
0
    def __init__(self, fname=None):
        gui.SlabWindow.__init__(self, HDFViewThread)
        self.setupSlabWindow(autoparam=True)
        self.auto_register_gui()

        self.register_param(self.datasets_treeWidget, "dataset")
        self.register_param(self.datapath_lineEdit, "datapath")

        # Setup Plots -- Could be eliminated if QtDesigner plugins were setup
        self.toolbar = Qt.QToolBar()
        self.addToolBar(self.toolbar)
        self.image_widget = ImageWidget(show_xsection=True, show_ysection=True)
        self.image_widget.add_toolbar(self.toolbar)
        self.image_widget.register_all_image_tools()
        self.image_plot = self.image_widget.plot
        self.image_plot_layout.addWidget(self.image_widget)
        self.gui["image_plot"] = self.image_plot

        self.line_widget = CurveWidget()
        self.gui[
            "line_plot"] = self.line_plot = self.line_widget.plot  #CurvePlot()
        self.line_plot_layout.addWidget(self.line_plot)
        self.line_widget.register_all_image_tools()

        # Context Menu actions
        self.set_x_action = Qt.QAction("Set as x data", self)
        self.clear_x_action = Qt.QAction("Clear x data", self)
        self.datasets_treeWidget.customContextMenuRequested.connect(
            lambda point: self.msg("menu requested"))
        self.datasets_treeWidget.customContextMenuRequested.connect(
            self.datasets_context_menu)

        # Connect launchers
        self.datapath_browse_pushButton.clicked.connect(self.select_datapath)
        self.register_script("set_datapath", self.datapath_lineEdit)
        self.register_script("load_file", self.datafiles_listWidget)
        self.register_script("load_dset", self.datasets_treeWidget)
        self.register_script("set_x_data", self.set_x_action)
        self.register_script("clear_x_data", self.clear_x_action)

        # Syntax Highlighting
        self.highlight = syntax.PythonHighlighter(
            self.script_textEdit.document())

        # Setup Prompt
        """
        message = "The currently loaded file is stored as 'f'"
        self.shell = InternalShell(self, message=message)
        self.shell.set_font(Qt.QFont("Consolas"))
        self.shell_dockWidget.setWidget(self.shell)
        self.gui["shell"] = self.shell
        """

        self.start_thread()

        if fname is not None:
            self.shell.exit_interpreter()
            directory = os.path.dirname(fname)
            nameitem = namedtuple('pseudoitem', ('filename', ))(fname)
            self.msg(fname)
            self.set_param("datapath", directory)
            self.start_script("set_datapath")
            self.start_script("load_file", nameitem)
예제 #14
0
    def setup_ui(self):
        # Sidebar / Dockarea
        self.setCentralWidget(Qt.QSplitter())
        self.sidebar = Qt.QWidget()
        self.sidebar.setLayout(Qt.QVBoxLayout())
        self.dock_area = MyDockArea()
        ItemWidget.dock_area = self.dock_area
        self.centralWidget().addWidget(self.sidebar)
        self.centralWidget().addWidget(self.dock_area)
        self.centralWidget().setSizes([250, 1000])

        # Spinner setting number of plots to display simultaneously by default
        self.max_plots_spinner = Qt.QSpinBox()
        self.max_plots_spinner.setValue(4)
        self.max_plots_spinner.valueChanged.connect(
            self.dock_area.set_max_plots)
        max_plots_widget = Qt.QWidget()
        max_plots_widget.setLayout(Qt.QHBoxLayout())
        max_plots_widget.layout().addWidget(Qt.QLabel('Maximum Plot Count'))
        max_plots_widget.layout().addWidget(self.max_plots_spinner)
        self.sidebar.layout().addWidget(max_plots_widget)

        # Structure Tree
        sidebar_splitter = Qt.QSplitter(Qt.Qt.Vertical)
        self.sidebar.layout().addWidget(sidebar_splitter)

        self.data_tree_widget = Qt.QTreeWidget()
        self.data_tree_widget.setColumnCount(3)
        self.data_tree_widget.setHeaderLabels(['Name', 'Shape', 'Visible?'])
        self.data_tree_widget.itemSelectionChanged.connect(
            self.change_edit_widget)
        self.data_tree_widget.itemDoubleClicked.connect(self.toggle_item)
        self.data_tree_widget.itemSelectionChanged.connect(
            self.configure_tree_actions)
        self.data_tree_widget.setSelectionMode(
            Qt.QAbstractItemView.ExtendedSelection)
        self.data_tree_widget.setColumnWidth(0, 150)
        self.data_tree_widget.setColumnWidth(1, 50)
        self.data_tree_widget.setColumnWidth(2, 50)
        self.data_tree_widget.setColumnWidth(3, 50)
        WindowItem.data_tree_widget = self.data_tree_widget
        sidebar_splitter.addWidget(self.data_tree_widget)

        # Structure Tree Context Menu
        self.multiplot_action = Qt.QAction('Create Multiplot', self)
        self.multiplot_action.triggered.connect(self.add_multiplot)
        self.data_tree_widget.addAction(self.multiplot_action)

        self.parametric_action = Qt.QAction('Plot Pair Parametrically', self)
        self.parametric_action.triggered.connect(
            lambda: self.add_multiplot(True))
        self.data_tree_widget.addAction(self.parametric_action)

        self.show_subtree_action = Qt.QAction('Show Subtree', self)
        self.show_subtree_action.triggered.connect(
            lambda: self.toggle_selection(show=True))
        self.data_tree_widget.addAction(self.show_subtree_action)

        self.hide_subtree_action = Qt.QAction('Hide Subtree', self)
        self.hide_subtree_action.triggered.connect(
            lambda: self.toggle_selection(show=False))
        self.data_tree_widget.addAction(self.hide_subtree_action)

        self.delete_item_action = Qt.QAction('Delete item', self)
        self.delete_item_action.triggered.connect(lambda: self.delete_item())
        self.data_tree_widget.addAction(self.delete_item_action)

        self.close_item_action = Qt.QAction('Close file', self)
        self.close_item_action.triggered.connect(lambda: self.delete_item())
        self.data_tree_widget.addAction(self.close_item_action)

        self.rename_item_action = Qt.QAction('Rename item', self)
        self.rename_item_action.triggered.connect(self.rename_item)
        self.data_tree_widget.addAction(self.rename_item_action)

        self.data_tree_widget.setContextMenuPolicy(Qt.Qt.ActionsContextMenu)
        self.data_tree_widget.itemCollapsed.connect(
            lambda: self.data_tree_widget.resizeColumnToContents(0))
        self.data_tree_widget.itemExpanded.connect(
            lambda: self.data_tree_widget.resizeColumnToContents(0))

        # Attribute Editor Area
        attrs_widget_box = Qt.QWidget()
        attrs_widget_box.setLayout(Qt.QVBoxLayout())
        WindowItem.attrs_widget_layout = attrs_widget_box.layout()
        self.current_edit_widget = None
        sidebar_splitter.addWidget(attrs_widget_box)

        # Status Bar
        self.connected_status = Qt.QLabel('Not Connected')
        #self.view_status = Qt.QLabel('Empty')
        self.current_files = None
        self.statusBar().addWidget(self.connected_status)
        #self.statusBar().addWidget(self.view_status)

        self.connection_checker = Qt.QTimer()
        self.connection_checker.timeout.connect(self.check_connection_status)

        # Menu bar
        file_menu = self.menuBar().addMenu('File')
        self.connect_to_server_action = Qt.QAction('Connect to Dataserver',
                                                   self)
        self.connect_to_server_action.triggered.connect(
            lambda checked: self.connect_dataserver())
        file_menu.addAction(self.connect_to_server_action)
        self.load_file_action = Qt.QAction('Load File', self)
        self.load_file_action.triggered.connect(
            lambda checked: self.load_file())
        file_menu.addAction(self.load_file_action)
예제 #15
0
파일: core.py 프로젝트: NexeyaSGara/PANIC
    def setupUi(self, Form):
        self.Form=Form
        Form.setObjectName("Form")
        #Form.resize(QtCore.QSize(900, 900))
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding)
        #sizePolicy.setHorizontalStretch(100)
        #sizePolicy.setVerticalStretch(100)
        sizePolicy.setHeightForWidth(Form.sizePolicy().hasHeightForWidth())
        Form.setSizePolicy(sizePolicy)
        Form.setMinimumSize(QtCore.QSize(250, 250))
        Form.setSizeIncrement(QtCore.QSize(1, 1))
        
        #self.splitWidget = Qt.QSplitter(Form)
        
        self.leftWidget = Qt.QWidget(Form)#self.splitWidget)
        
        #self.rightWidget = Qt.QWidget(self.splitWidget)
        #sForm.setBaseSize(QtCore.QSize(200, 200))
        
        self.horizontalLayout_3 = QtGui.QHBoxLayout(Form)
        self.horizontalLayout_3.setObjectName("horizontalLayout_3")
        self.Form.setLayout(self.horizontalLayout_3)
        
        self.verticalLayout_2 = QtGui.QVBoxLayout()
        self.verticalLayout_2.setObjectName("verticalLayout_2")
        self.frame = QtGui.QFrame(Form)
        self.frame.setFrameShape(QtGui.QFrame.StyledPanel)
        self.frame.setFrameShadow(QtGui.QFrame.Raised)
        self.frame.setObjectName("frame")
        self.frame.setMinimumSize(QtCore.QSize(300, 200))
#---------------------------------------------------------------------------------------
        self.leftGridLayout = QtGui.QGridLayout(self.frame)
        self.leftGridLayout.setObjectName("leftGridLayout")
        self.comboLabel = QtGui.QLabel(self.frame)
        self.comboLabel.setObjectName("comboLabel")
        #self.comboLabel.setMaximumSize(QtCore.QSize(50, 30))
        self.comboLabel.hide()
        self.leftGridLayout.addWidget(self.comboLabel, 0,0,1,1) #<-------------
        self.contextComboBox = QtGui.QComboBox(self.frame)
        self.contextComboBox.setObjectName("contextComboBox")
        self.leftGridLayout.addWidget(self.contextComboBox,0,1,1,5) #<-------------
        #self.comboButton = QtGui.QPushButton(self.frame)
        #self.comboButton.setObjectName("comboButton")
        #self.leftGridLayout.addWidget(self.comboButton,0,5,1,1)
        #self.comboButton2 = QtGui.QPushButton(self.frame)
        #self.comboButton2.setObjectName("comboButton2")
        #self.leftGridLayout.addWidget(self.comboButton2,0,6,1,1)

        self.infoLabel0_1 = QtGui.QLabel(self.frame)
        self.infoLabel0_1.setObjectName("infoLabel0_1")
        #self.infoLabel0_1.setMinimumWidth(60)
        self.leftGridLayout.addWidget(self.infoLabel0_1, 1,0,1,1) #<-------------
        self.infoLabel0_1.hide()
        self.comboBoxx = QtGui.QComboBox(self.frame)
        self.comboBoxx.setObjectName("comboBoxx")
        self.leftGridLayout.addWidget(self.comboBoxx, 1,1,1,5) #<-------------
        self.comboBoxx.hide()
        self.infoLabel1_1 = QtGui.QLabel(self.frame)
        self.infoLabel1_1.setObjectName("infoLabel1_1")
        self.leftGridLayout.addWidget(self.infoLabel1_1, 2,0,1,1) #<-------------
        self.infoLabel1_1.hide()
        self.infoLabel1_2 = QtGui.QLabel(self.frame)
        self.infoLabel1_2.setObjectName("infoLabel1_2")
        self.leftGridLayout.addWidget(self.infoLabel1_2, 2,1,1,5) #<-------------
        self.infoLabel1_2.hide()

        self.regExGridLayout = QtGui.QGridLayout()
        self.regExLabel = QtGui.QLabel(self.frame)
        self.regExLabel.setObjectName("regExLabel")
        self.regExLabel.setText('Type a string to filter alarms')
        self.regExGridLayout.addWidget(self.regExLabel, 0,0,1,1)
        self.regExLine = QtGui.QLineEdit(self.frame)
        self.regExLine.setObjectName("regExLine")
        self.regExGridLayout.addWidget(self.regExLine, 0,1,1,3)
        self.regExUpdate = QtGui.QPushButton(self.frame)
        self.regExUpdate.setObjectName("regExUpdate")
        self.regExUpdate.setText("Update")
        self.regExGridLayout.addWidget(self.regExUpdate, 0,4,1,1)
        self.leftGridLayout.addLayout(self.regExGridLayout, 3,0,1,6) #<-------------

        self.gridFilterLayout = QtGui.QGridLayout()
        self.gridFilterLayout.addWidget(Qt.QLabel('Severities:'), 2,0,1,1)
        
        self.sevAlarmLabel = QtGui.QLabel(self.frame)
        self.sevAlarmLabel.setObjectName("sevAlarmLabel")
        self.sevAlarmLabel.setText('Alarm')
        #self.sevAlarmLabel.setAlignment(Qt.Qt.AlignHCenter)
        self.gridFilterLayout.addWidget(self.sevAlarmLabel, 1,1,1,1)
        self.sevErrorLabel = QtGui.QLabel(self.frame)
        self.sevErrorLabel.setObjectName("sevErrorLabel")
        self.sevErrorLabel.setText('Error')
        #self.sevErrorLabel.setAlignment(Qt.Qt.AlignHCenter)
        self.gridFilterLayout.addWidget(self.sevErrorLabel, 1,2,1,1)
        self.sevWarningLabel = QtGui.QLabel(self.frame)
        self.sevWarningLabel.setObjectName("sevWarningLabel")
        self.sevWarningLabel.setText('Warning')
        #self.sevWarningLabel.setAlignment(Qt.Qt.AlignHCenter)        
        self.gridFilterLayout.addWidget(self.sevWarningLabel, 1,3,1,1)
        self.sevDebugLabel = QtGui.QLabel(self.frame)
        self.sevDebugLabel.setObjectName("sevDebugLabel")
        self.sevDebugLabel.setText('Debug')
        #self.sevDebugLabel.setAlignment(Qt.Qt.AlignHCenter)
        self.gridFilterLayout.addWidget(self.sevDebugLabel, 1,4,1,1)

        self.sevAlarmCheckBox = QtGui.QCheckBox()
        self.sevAlarmCheckBox.setObjectName("sevAlarmCheckBox")
        self.sevAlarmCheckBox.setChecked(True)
        #self.sevAlarmCheckBox.setAlignment(Qt.Qt.AlignHCenter)
        self.gridFilterLayout.addWidget(self.sevAlarmCheckBox, 2,1,1,1)
        self.sevErrorCheckBox = QtGui.QCheckBox()
        self.sevErrorCheckBox.setObjectName("sevErrorCheckBox")
        self.sevErrorCheckBox.setChecked(True)
        #self.sevErrorCheckBox.setAlignment(Qt.Qt.AlignHCenter)
        self.gridFilterLayout.addWidget(self.sevErrorCheckBox, 2,2,1,1)
        self.sevWarningCheckBox = QtGui.QCheckBox()
        self.sevWarningCheckBox.setObjectName("sevWarningCheckBox")
        self.sevWarningCheckBox.setChecked(True)
        #self.sevWarningCheckBox.setAlignment(Qt.Qt.AlignHCenter)        
        self.gridFilterLayout.addWidget(self.sevWarningCheckBox, 2,3,1,1)
        self.sevDebugCheckBox = QtGui.QCheckBox()
        self.sevDebugCheckBox.setObjectName("sevDebugCheckBox")
        self.sevDebugCheckBox.setChecked(False)
        #self.sevDebugCheckBox.setAlignment(Qt.Qt.AlignHCenter)
        self.gridFilterLayout.addWidget(self.sevDebugCheckBox, 2,4,1,1)

        #self.formLayout.addItem(self.gridFilterLayout)
        self.leftGridLayout.addLayout(self.gridFilterLayout, 4,0,1,6) #<-------------

        #self.verticalLayout_3.addLayout(self.formLayout)
        self.listWidget = QtGui.QListWidget(self.frame)
        self.listWidget.setObjectName("listWidget")
        self.listWidget.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
        self.listWidget.setSelectionMode(QtGui.QAbstractItemView.ExtendedSelection)
        self.leftGridLayout.addWidget(self.listWidget, 5,0,1,6) #<-------------
        
        self.statusLabel = QtGui.QLabel('Loading ...')
        self.leftGridLayout.addWidget(self.statusLabel,6,0,1,2) #<-------------
        
        self.activeLabel = QtGui.QLabel(self.frame)
        self.activeLabel.setObjectName("activeLabel")
        self.activeLabel.setText('Show Active Only')
        #self.gridFilterLayout.addWidget(self.activeLabel, 1,5,1,1)
        self.leftGridLayout.addWidget(self.activeLabel, 6,2,1,1) #<-------------
        
        self.activeCheckBox = QtGui.QCheckBox()
        self.activeCheckBox.setObjectName("activeCheckBox")
        self.activeCheckBox.setChecked(False)
        #self.gridFilterLayout.addWidget(self.activeCheckBox, 2,5,1,1)
        self.leftGridLayout.addWidget(self.activeCheckBox, 6,3,1,1) #<-------------
        
        self.selectLabel = QtGui.QLabel(self.frame)
        self.selectLabel.setObjectName("selectLabel")
        self.selectLabel.setText('Select All/None')
        #self.selectLabel.setAlignment(Qt.Qt.AlignRight)
        #self.gridFilterLayout.addWidget(self.selectLabel, 1,0,1,1)
        self.leftGridLayout.addWidget(self.selectLabel, 6,4,1,1) #<-------------
        self.selectCheckBox = QtGui.QCheckBox()
        self.selectCheckBox.setObjectName("selectCheckBox")
        self.selectCheckBox.setChecked(False)
        #self.selectCheckBox.setAlignment(Qt.Qt.AlignHCenter)
        #self.gridFilterLayout.addWidget(self.selectCheckBox, 2,0,1,1)
        self.leftGridLayout.addWidget(self.selectCheckBox, 6,5,1,1) #<-------------
                
#----------------------------------------------------------------------------------------------

        self.verticalLayout_2.addWidget(self.frame)
        self.horizontalLayout_2 = QtGui.QHBoxLayout()
        self.horizontalLayout_2.setObjectName("horizontalLayout_2")

        self.refreshButton = QtGui.QPushButton(Form)
        self.refreshButton.setObjectName("refreshButton")
        self.horizontalLayout_2.addWidget(self.refreshButton)
        self.refreshButton.hide()
        self.newButton = QtGui.QPushButton(Form)
        self.newButton.setObjectName("newButton")
        self.horizontalLayout_2.addWidget(self.newButton)
        self.newButton.hide()
        self.deleteButton = QtGui.QPushButton(Form)
        self.deleteButton.setObjectName("deleteButton")
        self.horizontalLayout_2.addWidget(self.deleteButton)
        self.deleteButton.hide()
        self.customButton3 = QtGui.QPushButton(Form)
        self.customButton3.setObjectName("customButton3")
        self.horizontalLayout_2.addWidget(self.customButton3)
        self.customButton3.hide()
        self.verticalLayout_2.addLayout(self.horizontalLayout_2)
        
        #self.horizontalLayout_3.addLayout(self.verticalLayout_2)
        self.leftWidget.setLayout(self.verticalLayout_2)

        self.verticalLayout = QtGui.QVBoxLayout()
        self.verticalLayout.setObjectName("verticalLayout")
        #self.horizontalLayout_5 = QtGui.QHBoxLayout()
        #self.horizontalLayout_5.setObjectName("horizontalLayout_5")
        #self.tableLabel = QtGui.QLabel(Form)
        #self.tableLabel.setObjectName("tableLabel")
        #self.horizontalLayout_5.addWidget(self.tableLabel)
        #self.tableLabel.hide()
        #self.tableLabel.setText("tableLabel")
        #self.viewComboBox = QtGui.QComboBox(Form)
        #self.viewComboBox.setObjectName("viewComboBox")
        #self.horizontalLayout_5.addWidget(self.viewComboBox)
        #self.viewComboBox.setLayoutDirection(QtCore.Qt.RightToLeft)
        #self.viewComboBox.addItem("Table View")
        #self.viewComboBox.addItem("Live View")
        #self.viewComboBox.addItem("Compare View")
        #self.viewComboBox.setMaximumWidth(115)
        #self.viewComboBox.hide()
        #self.verticalLayout.addLayout(self.horizontalLayout_5)

        self.frame_2 = QtGui.QFrame(Form)
        self.frame_2.setFrameShape(QtGui.QFrame.StyledPanel)
        self.frame_2.setFrameShadow(QtGui.QFrame.Raised)
        self.frame_2.setObjectName("frame_2")
        self.frame_2.setMinimumSize(QtCore.QSize(300, 200))
        self.gridLayout = QtGui.QGridLayout(self.frame_2)
        self.gridLayout.setObjectName("gridLayout")
        #self.tableWidget = QtGui.QTableWidget(self.frame_2)
        #self.tableWidget.setObjectName("tableWidget")
        #self.tableWidget.setColumnCount(0)
        #self.tableWidget.setRowCount(0)
        #self.gridLayout.addWidget(self.tableWidget)
        #self.tableWidget.hide()
        #self.taurusForm = TaurusForm(self.frame_2)
        #self.taurusForm.setObjectName("taurusForm")
        #self.taurusForm.hide()
        self.frame_2.hide()
        self.verticalLayout.addWidget(self.frame_2)

        self.horizontalLayout = QtGui.QHBoxLayout()
        self.horizontalLayout.setObjectName("horizontalLayout")
        #self.customButton4 = QtGui.QPushButton(Form)
        #self.customButton4.setObjectName("customButton4")
        #self.horizontalLayout.addWidget(self.customButton4)
        #self.customButton4.hide()
        #self.customButton5 = QtGui.QPushButton(Form)
        #self.customButton5.setObjectName("customButton5")
        #self.horizontalLayout.addWidget(self.customButton5)
        #self.customButton5.hide()
        self.buttonClose = QtGui.QPushButton(Form)
        self.buttonClose.setObjectName("buttonClose")
        self.buttonClose.setText(QtGui.QApplication.translate("Form", "Close", None, QtGui.QApplication.UnicodeUTF8))
        self.buttonClose.setToolTip(QtGui.QApplication.translate("Form", "Close Application", None, QtGui.QApplication.UnicodeUTF8))
        self.icon_close = QtGui.QIcon(":/actions/process-stop.svg")
        self.buttonClose.setIcon(self.icon_close)
        self.buttonClose.hide()
        self.horizontalLayout.addWidget(self.buttonClose)
        self.verticalLayout.addLayout(self.horizontalLayout)
        
        #self.horizontalLayout_3.addLayout(self.verticalLayout)
        #self.rightWidget.setLayout(self.verticalLayout)
        
        #self.splitWidget.addWidget(self.leftWidget)
        #self.splitWidget.addWidget(self.rightWidget)
        self.horizontalLayout_3.addWidget(self.leftWidget)#splitWidget)
        
        self.retranslateUi(Form)
        QtCore.QMetaObject.connectSlotsByName(Form)
        
        self.actionExpert = Qt.QAction(None)
        self.actionExpert.setText('Expert View')
        self.actionExpert.setCheckable(True)
        self.actionExpert.setChecked(False)

        
        Form.setWindowTitle("Alarms")

        self.comboLabel.setText("Sort:")
        #self.comboButton.setText("View")

        self.refreshButton.setText("Refresh/Sort List")
        self.refreshButton.setIcon(getThemeIcon("view-refresh"))
        self.newButton.setText("New")
        self.newButton.setIcon(getThemeIcon("window-new"))
        self.deleteButton.setText("Delete")
        self.deleteButton.setIcon(getThemeIcon("edit-clear"))

        self.comboLabel.show()
        self.refreshButton.show()
        self.newButton.show()
        self.deleteButton.show()
        self.comboBoxx.show()
        self.infoLabel0_1.show()
        self.infoLabel1_1.show()
예제 #16
0
    def init(self):
        self.__sampleChangerFrame = None
        self.__robotMoveState = 0
        self.__scanCurveX = {}
        self.__scanCurveY = {}
        self._isDrawing = False
        self.selectedBeamLocation = None
        self._sampleChanger = None

        self.count = 0

        self.robotLayout = Qt.QVBoxLayout(self.brick_widget)

        self.robotSampleChangerFrameLabel = RobotSampleChangerFrameLabel(
            self, self.brick_widget)
        self.robotSampleChangerFrameLabel.setSizePolicy(
            Qt.QSizePolicy.Expanding, Qt.QSizePolicy.Expanding)
        self.robotSampleChangerFrameLabel.setScaledContents(True)
        self.robotSampleChangerFramePainter = Qt.QPainter()
        self.robotSampleChangerFramePixmap = QtGui.QPixmap()
        self.robotLayout.addWidget(self.robotSampleChangerFrameLabel)

        self.robotHBoxLayout1 = Qt.QHBoxLayout()
        self.robotSampleStateLabel = Qt.QLabel("State", self.brick_widget)
        self.robotHBoxLayout1.addWidget(self.robotSampleStateLabel)
        self.robotSampleChangerStateLineEdit = Qt.QLineEdit(self.brick_widget)
        self.robotSampleChangerStateLineEdit.setDisabled(True)
        self.robotHBoxLayout1.addWidget(self.robotSampleChangerStateLineEdit)
        self.robotSampleChangerStatusLineEdit = Qt.QLineEdit(self.brick_widget)
        self.robotSampleChangerStatusLineEdit.setDisabled(True)
        self.robotHBoxLayout1.addWidget(self.robotSampleChangerStatusLineEdit)
        self.robotLayout.addLayout(self.robotHBoxLayout1)

        self.robotHBoxLayout2 = Qt.QHBoxLayout()
        self.robotStorageTemperatureLabel = Qt.QLabel(
            "Temperature (SEU, storage)", self.brick_widget)
        self.robotHBoxLayout2.addWidget(self.robotStorageTemperatureLabel)
        self.robotSEUTemperatureLineEdit = Qt.QLineEdit(self.brick_widget)
        self.robotSEUTemperatureLineEdit.setDisabled(True)
        self.robotHBoxLayout2.addWidget(self.robotSEUTemperatureLineEdit)
        self.robotSEUTemperaturePushButton = Qt.QPushButton(
            "Set", self.brick_widget)
        Qt.QObject.connect(self.robotSEUTemperaturePushButton,
                           Qt.SIGNAL("clicked()"),
                           self.robotSEUTemperaturePushButtonClicked)
        self.robotHBoxLayout2.addWidget(self.robotSEUTemperaturePushButton)
        self.robotStorageTemperatureLineEdit = Qt.QLineEdit(self.brick_widget)
        self.robotStorageTemperatureLineEdit.setDisabled(True)
        self.robotHBoxLayout2.addWidget(self.robotStorageTemperatureLineEdit)
        self.robotStorageTemperaturePushButton = Qt.QPushButton(
            "Set", self.brick_widget)
        Qt.QObject.connect(self.robotStorageTemperaturePushButton,
                           Qt.SIGNAL("clicked()"),
                           self.robotStorageTemperaturePushButtonClicked)
        self.robotHBoxLayout2.addWidget(self.robotStorageTemperaturePushButton)
        self.robotLayout.addLayout(self.robotHBoxLayout2)

        self.robotHBoxLayout3 = Qt.QHBoxLayout()
        self.robotMoveBackwardPushButton = Qt.QPushButton(
            "|<<", self.brick_widget)
        Qt.QObject.connect(self.robotMoveBackwardPushButton,
                           Qt.SIGNAL("pressed()"),
                           self.robotMoveBackwardPushButtonPressed)
        Qt.QObject.connect(self.robotMoveBackwardPushButton,
                           Qt.SIGNAL("released()"),
                           self.robotMoveBackwardPushButtonReleased)
        self.robotHBoxLayout3.addWidget(self.robotMoveBackwardPushButton)
        self.robotStopPushButton = Qt.QPushButton("||", self.brick_widget)
        Qt.QObject.connect(self.robotStopPushButton, Qt.SIGNAL("clicked()"),
                           self.robotStopPushButtonClicked)
        self.robotHBoxLayout3.addWidget(self.robotStopPushButton)
        #self.robotMovePushButton = Qt.QPushButton(">", self.brick_widget)
        #Qt.QObject.connect(self.robotMovePushButton, Qt.SIGNAL("clicked()"), self.robotMovePushButtonClicked)
        #self.robotHBoxLayout3.addWidget(self.robotMovePushButton)
        self.robotMoveForwardPushButton = Qt.QPushButton(
            ">>|", self.brick_widget)
        Qt.QObject.connect(self.robotMoveForwardPushButton,
                           Qt.SIGNAL("pressed()"),
                           self.robotMoveForwardPushButtonPressed)
        Qt.QObject.connect(self.robotMoveForwardPushButton,
                           Qt.SIGNAL("released()"),
                           self.robotMoveForwardPushButtonReleased)
        self.robotHBoxLayout3.addWidget(self.robotMoveForwardPushButton)
        self.robotFlowPushButton = Qt.QPushButton("Flow", self.brick_widget)
        Qt.QObject.connect(self.robotFlowPushButton, Qt.SIGNAL("clicked()"),
                           self.robotFlowPushButtonClicked)
        self.robotHBoxLayout3.addWidget(self.robotFlowPushButton)
        self.robotRecuperatePushButton = Qt.QPushButton(
            "Recuperate", self.brick_widget)
        Qt.QObject.connect(self.robotRecuperatePushButton,
                           Qt.SIGNAL("clicked()"),
                           self.robotRecuperatePushButtonClicked)
        self.robotHBoxLayout3.addWidget(self.robotRecuperatePushButton)
        self.robotLayout.addLayout(self.robotHBoxLayout3)

        self.robotHBoxLayout4 = Qt.QHBoxLayout()
        self.robotRestartPushButton = Qt.QPushButton("Restart",
                                                     self.brick_widget)
        self.robotRestartMenu = Qt.QMenu(self.robotRestartPushButton)
        self.robotRestartWithHomingAction = Qt.QAction("With homing",
                                                       self.robotRestartMenu)
        self.robotRestartMenu.addAction(self.robotRestartWithHomingAction)
        self.robotRestartWithoutHomingAction = Qt.QAction(
            "Without homing", self.robotRestartMenu)
        self.robotRestartMenu.addAction(self.robotRestartWithoutHomingAction)
        Qt.QObject.connect(self.robotRestartWithHomingAction,
                           Qt.SIGNAL("triggered(bool)"),
                           self.robotRestartWithHomingActionTriggered)
        Qt.QObject.connect(self.robotRestartWithoutHomingAction,
                           Qt.SIGNAL("triggered(bool)"),
                           self.robotRestartWithoutHomingActionTriggered)
        self.robotRestartPushButton.setMenu(self.robotRestartMenu)
        self.robotHBoxLayout4.addWidget(self.robotRestartPushButton)
        self.robotAbortPushButton = Qt.QPushButton("Abort", self.brick_widget)
        Qt.QObject.connect(self.robotAbortPushButton, Qt.SIGNAL("clicked()"),
                           self.robotAbortPushButtonClicked)
        self.robotHBoxLayout4.addWidget(self.robotAbortPushButton)
        self.robotCleanPushButton = Qt.QPushButton("Clean", self.brick_widget)
        Qt.QObject.connect(self.robotCleanPushButton, Qt.SIGNAL("clicked()"),
                           self.robotCleanPushButtonClicked)
        self.robotHBoxLayout4.addWidget(self.robotCleanPushButton)
        self.robotFillPushButton = Qt.QPushButton("Fill", self.brick_widget)
        Qt.QObject.connect(self.robotFillPushButton, Qt.SIGNAL("clicked()"),
                           self.robotFillPushButtonClicked)
        self.robotHBoxLayout4.addWidget(self.robotFillPushButton)
        self.robotDryPushButton = Qt.QPushButton("Dry", self.brick_widget)
        Qt.QObject.connect(self.robotDryPushButton, Qt.SIGNAL("clicked()"),
                           self.robotDryPushButtonClicked)
        self.robotHBoxLayout4.addWidget(self.robotDryPushButton)
        self.robotFixLiquidPositionPushButton = Qt.QPushButton(
            "Fix liquid position", self.brick_widget)
        Qt.QObject.connect(self.robotFixLiquidPositionPushButton,
                           Qt.SIGNAL("clicked()"),
                           self.robotFixLiquidPositionPushButtonClicked)
        self.robotHBoxLayout4.addWidget(self.robotFixLiquidPositionPushButton)
        self.robotSnapshotPushButton = Qt.QPushButton("Snapshot",
                                                      self.brick_widget)
        Qt.QObject.connect(self.robotSnapshotPushButton,
                           Qt.SIGNAL("clicked()"),
                           self.robotSnapshotPushButtonClicked)
        self.robotHBoxLayout4.addWidget(self.robotSnapshotPushButton)
        self.robotLayout.addLayout(self.robotHBoxLayout4)

        self.__sampleChangerDisplayFlag = False
        self.__sampleChangerDisplayMessage = ""

        self.__updateTimer = QtCore.QTimer(self.brick_widget)

        QtCore.QObject.connect(self.__updateTimer, QtCore.SIGNAL('timeout()'),
                               self.updateSampleChanger)
예제 #17
0
    def __init__(self, parent):

        self.__robotMoveState = 0
        self.plateGeometry = []
        self.lastWell = [1, 1, 1]

        Qt.QWidget.__init__(self, parent)

        self.vBoxLayout = Qt.QVBoxLayout()

        self.topHBox = Qt.QHBoxLayout()
        self.syringeGroup = Qt.QGroupBox("Syringe", self)
        self.actionGroup = Qt.QGroupBox("Actions", self)
        self.tempGroup = Qt.QGroupBox("Temperature", self)
        self.bottomBox = Qt.QHBoxLayout()

        self.vBoxLayout.addLayout(self.topHBox)
        self.vBoxLayout.addWidget(self.actionGroup)
        self.vBoxLayout.addLayout(self.bottomBox)

        #  Top Line
        self.syringeLayout = Qt.QHBoxLayout()
        self.robotMoveBackwardPushButton = Qt.QPushButton("<<", self)
        self.robotMoveBackwardPushButton.setFixedWidth(150)
        self.robotMoveBackwardPushButton.setToolTip("Move liquid backward")
        Qt.QObject.connect(self.robotMoveBackwardPushButton,
                           Qt.SIGNAL("pressed()"),
                           self.robotMoveBackwardPushButtonPressed)
        Qt.QObject.connect(self.robotMoveBackwardPushButton,
                           Qt.SIGNAL("released()"),
                           self.robotMoveBackwardPushButtonReleased)
        self.syringeLayout.addWidget(self.robotMoveBackwardPushButton)

        self.robotFixLiquidPositionPushButton = Qt.QPushButton(">|<", self)
        self.robotFixLiquidPositionPushButton.setFixedWidth(150)
        self.robotFixLiquidPositionPushButton.setToolTip("Fix liquid position")
        Qt.QObject.connect(self.robotFixLiquidPositionPushButton,
                           Qt.SIGNAL("clicked()"),
                           self.robotFixLiquidPositionPushButtonClicked)
        self.syringeLayout.addWidget(self.robotFixLiquidPositionPushButton)

        self.robotMoveForwardPushButton = Qt.QPushButton(">>", self)
        self.robotMoveForwardPushButton.setFixedWidth(150)
        self.robotMoveForwardPushButton.setToolTip("Move liquid forward")
        Qt.QObject.connect(self.robotMoveForwardPushButton,
                           Qt.SIGNAL("pressed()"),
                           self.robotMoveForwardPushButtonPressed)
        Qt.QObject.connect(self.robotMoveForwardPushButton,
                           Qt.SIGNAL("released()"),
                           self.robotMoveForwardPushButtonReleased)
        self.syringeLayout.addWidget(self.robotMoveForwardPushButton)

        self.syringeGroup.setLayout(self.syringeLayout)

        self.topHBox.addWidget(self.syringeGroup)
        self.topHBox.addWidget(self.tempGroup)

        #  Action group
        self.actionLayout = Qt.QHBoxLayout()

        self.robotFillPushButton = Qt.QPushButton("Fill", self)
        Qt.QObject.connect(self.robotFillPushButton, Qt.SIGNAL("clicked()"),
                           self.robotFillPushButtonClicked)
        self.actionLayout.addWidget(self.robotFillPushButton)

        self.robotRecuperatePushButton = Qt.QPushButton("Recuperate", self)
        Qt.QObject.connect(self.robotRecuperatePushButton,
                           Qt.SIGNAL("clicked()"),
                           self.robotRecuperatePushButtonClicked)
        self.actionLayout.addWidget(self.robotRecuperatePushButton)

        self.robotCleanPushButton = Qt.QPushButton("Clean", self)
        Qt.QObject.connect(self.robotCleanPushButton, Qt.SIGNAL("clicked()"),
                           self.robotCleanPushButtonClicked)
        self.actionLayout.addWidget(self.robotCleanPushButton)

        self.robotDryPushButton = Qt.QPushButton("Dry", self)
        Qt.QObject.connect(self.robotDryPushButton, Qt.SIGNAL("clicked()"),
                           self.robotDryPushButtonClicked)
        self.actionLayout.addWidget(self.robotDryPushButton)

        self.robotFlowPushButton = Qt.QPushButton("Flow", self)
        Qt.QObject.connect(self.robotFlowPushButton, Qt.SIGNAL("clicked()"),
                           self.robotFlowPushButtonClicked)
        self.actionLayout.addWidget(self.robotFlowPushButton)

        self.robotMixPushButton = Qt.QPushButton("Mix", self)
        Qt.QObject.connect(self.robotMixPushButton, Qt.SIGNAL("clicked()"),
                           self.robotMixPushButtonClicked)
        self.actionLayout.addWidget(self.robotMixPushButton)

        self.robotTransferPushButton = Qt.QPushButton("Transfer", self)
        Qt.QObject.connect(self.robotTransferPushButton,
                           Qt.SIGNAL("clicked()"),
                           self.robotTransferPushButtonClicked)
        self.actionLayout.addWidget(self.robotTransferPushButton)

        self.robotAbortPushButton = Qt.QPushButton("Abort", self)
        Qt.QObject.connect(self.robotAbortPushButton, Qt.SIGNAL("clicked()"),
                           self.robotAbortPushButtonClicked)
        self.robotAbortPushButton.setDisabled(True)
        self.robotAbortPushButton.setObjectName("abortbutton")
        self.robotAbortPushButton.setProperty("abortactive", "false")

        self.actionLayout.addWidget(self.robotAbortPushButton)

        self.actionGroup.setLayout(self.actionLayout)

        #  Temperature settings

        self.tempLayout = Qt.QHBoxLayout()

        self.robotStorageTemperatureLabel = Qt.QLabel("Storage Temp.", self)
        self.tempLayout.addWidget(self.robotStorageTemperatureLabel)

        self.robotStorageTemperatureLineEdit = Qt.QLineEdit(self)
        self.robotStorageTemperatureLineEdit.setDisabled(True)
        self.robotStorageTemperatureLineEdit.setFixedWidth(80)
        self.tempLayout.addWidget(self.robotStorageTemperatureLineEdit)

        self.robotStorageTemperaturePushButton = Qt.QPushButton("Set", self)
        Qt.QObject.connect(self.robotStorageTemperaturePushButton,
                           Qt.SIGNAL("clicked()"),
                           self.robotStorageTemperaturePushButtonClicked)
        self.tempLayout.addWidget(self.robotStorageTemperaturePushButton)

        self.robotSEUTemperatureLabel = Qt.QLabel("SEU Temp.", self)
        self.tempLayout.addWidget(self.robotSEUTemperatureLabel)

        self.robotSEUTemperatureLineEdit = Qt.QLineEdit(self)
        self.robotSEUTemperatureLineEdit.setDisabled(True)
        self.robotSEUTemperatureLineEdit.setFixedWidth(80)
        self.tempLayout.addWidget(self.robotSEUTemperatureLineEdit)

        self.robotSEUTemperaturePushButton = Qt.QPushButton("Set", self)
        Qt.QObject.connect(self.robotSEUTemperaturePushButton,
                           Qt.SIGNAL("clicked()"),
                           self.robotSEUTemperaturePushButtonClicked)
        self.tempLayout.addWidget(self.robotSEUTemperaturePushButton)

        self.tempGroup.setLayout(self.tempLayout)

        #  Bottom Line
        self.robotSampleStateLabel = Qt.QLabel("State: ", self)
        self.robotSampleStateLabel.setFixedWidth(70)
        self.bottomBox.addWidget(self.robotSampleStateLabel)

        self.robotSampleChangerStatus = Qt.QLabel()
        self.robotSampleChangerStatus.setObjectName("statuslabel")
        self.robotSampleChangerStatus.setSizePolicy(Qt.QSizePolicy.Expanding,
                                                    Qt.QSizePolicy.Expanding)
        self.bottomBox.addWidget(self.robotSampleChangerStatus)

        self.robotRestartPushButton = Qt.QPushButton("Restart", self)
        self.robotRestartPushButton.setFixedWidth(150)
        self.robotRestartMenu = Qt.QMenu(self.robotRestartPushButton)
        self.robotRestartWithHomingAction = Qt.QAction("With homing",
                                                       self.robotRestartMenu)
        self.robotRestartWithoutHomingAction = Qt.QAction(
            "Without homing", self.robotRestartMenu)
        self.robotRestartMenu.addAction(self.robotRestartWithHomingAction)
        self.robotRestartMenu.addAction(self.robotRestartWithoutHomingAction)
        Qt.QObject.connect(self.robotRestartWithHomingAction,
                           Qt.SIGNAL("triggered(bool)"),
                           self.robotRestartWithHomingActionTriggered)
        Qt.QObject.connect(self.robotRestartWithoutHomingAction,
                           Qt.SIGNAL("triggered(bool)"),
                           self.robotRestartWithoutHomingActionTriggered)
        self.robotRestartPushButton.setMenu(self.robotRestartMenu)
        self.bottomBox.addWidget(self.robotRestartPushButton)

        self.setStyleSheet(
            ' #abortbutton[abortactive="true"]  {background-color: red;color: white}\
                             #abortbutton[abortactive="false"] {background-color: #fff;color: black}\
                             #statuslabel[state="running"] {background-color: #ff0;color: black}\
                             #statuslabel[state="standby"] {background-color: #0f0;color: black}\
                             #statuslabel[state="disconnected"] {background-color: #f0f;color: black}\
                             #statuslabel[state="alarm"] {background-color: #f0f;color: black}'
        )

        self.setLayout(self.vBoxLayout)
        self.__sampleChangerDisplayFlag = False
        self.__sampleChangerDisplayMessage = ""
예제 #18
0
    def initContextmenu(self, reset_auto=False):
        """Initialize the result buffer context menu """
        if self.menu is None:
            self.menu = Qt.QMenu(self)
            Qt.QObject.connect(self.menu, Qt.SIGNAL("triggered()"),
                               self.handle_menu_request)
            toggle_id = self.menu_table['Reset Auto Scaling']
            self._reset_auto_scaling = Qt.QAction('Reset Auto Scaling', self)
            self._reset_auto_scaling.setData(Qt.QVariant(toggle_id))
            self.menu.addAction(self._reset_auto_scaling)
            if reset_auto:
                self._reset_auto_scaling.setVisible(True)
            else:
                self._reset_auto_scaling.setVisible(False)

            toggle_id = self.menu_table['Adjust results buffer size']
            self._adjust_results_buffer_size = Qt.QAction(
                'Adjust results buffer size', self)
            self._adjust_results_buffer_size.setData(Qt.QVariant(toggle_id))
            self.menu.addAction(self._adjust_results_buffer_size)
            self.connect(self._adjust_results_buffer_size,
                         Qt.SIGNAL('triggered()'), self.handleBufferSize)
            if reset_auto:
                self._adjust_results_buffer_size.setVisible(False)
            else:
                self._adjust_results_buffer_size.setVisible(True)

# option for summary plot
            toggle_id = self.menu_table['Display summary plot']
            self._display_summary_plot = Qt.QAction('Display summary plot',
                                                    self)
            self.menu.addAction(self._display_summary_plot)
            self._display_summary_plot.setVisible(False)
            self._display_summary_plot.setData(Qt.QVariant(toggle_id))

            # options for 3D Display
            toggle_id = self.menu_table['X Axis']
            self._x_axis = Qt.QAction('X Axis', self)
            self.menu.addAction(self._x_axis)
            self._x_axis.setVisible(False)
            self._x_axis.setData(Qt.QVariant(toggle_id))
            self.connect(self._x_axis, Qt.SIGNAL('triggered()'),
                         self.X_Axis_Selected)

            toggle_id = self.menu_table['Y Axis']
            self._y_axis = Qt.QAction('Y Axis', self)
            self.menu.addAction(self._y_axis)
            self._y_axis.setVisible(False)
            self._y_axis.setData(Qt.QVariant(toggle_id))
            self.connect(self._y_axis, Qt.SIGNAL('triggered()'),
                         self.Y_Axis_Selected)

            toggle_id = self.menu_table['Z Axis']
            self._z_axis = Qt.QAction('Z Axis', self)
            self.menu.addAction(self._z_axis)
            self._z_axis.setVisible(False)
            self._z_axis.setData(Qt.QVariant(toggle_id))
            self.connect(self._z_axis, Qt.SIGNAL('triggered()'),
                         self.Z_Axis_Selected)

            toggle_id = self.menu_table['Align Camera']
            self._align_camera = Qt.QAction('Align Camera', self)
            self.menu.addAction(self._align_camera)
            self._align_camera.setVisible(False)
            self._align_camera.setData(Qt.QVariant(toggle_id))
            self._align_camera.setText('Align Camera to Current Axis')
            self.connect(self._align_camera, Qt.SIGNAL('triggered()'),
                         self.align_camera)

            toggle_id = self.menu_table['Show 2D Display']
            self._show_2d_display = Qt.QAction('Show 2D Display', self)
            self.menu.addAction(self._show_2d_display)
            self._show_2d_display.setVisible(False)
            self._show_2d_display.setData(Qt.QVariant(toggle_id))
            self.connect(self._show_2d_display, Qt.SIGNAL('triggered()'),
                         self.request_2D_display)

            toggle_id = self.menu_table['Toggle ND Controller']
            self._toggle_nd_controller = Qt.QAction('Toggle ND Controller',
                                                    self)
            self.menu.addAction(self._toggle_nd_controller)
            self._toggle_nd_controller.setVisible(False)
            self._toggle_nd_controller.setData(Qt.QVariant(toggle_id))
            self._toggle_nd_controller.setText('Hide ND Controller')
            self.connect(self._toggle_nd_controller, Qt.SIGNAL('triggered()'),
                         self.toggle_ND_controller)

            toggle_id = self.menu_table['Toggle VTK Scale']
            self._toggle_vtk_scale = Qt.QAction('Toggle VTK Scale', self)
            self.menu.addAction(self._toggle_vtk_scale)
            self._toggle_vtk_scale.setVisible(False)
            self._toggle_vtk_scale.setData(Qt.QVariant(toggle_id))
            self._toggle_vtk_scale.setText('Apply Scaling to VTK Display')
            self.connect(self._toggle_vtk_scale, Qt.SIGNAL('triggered()'),
                         self.toggle_scale)

            toggle_id = self.menu_table['Update']
            self._update = Qt.QAction('Update', self)
            self.menu.addAction(self._update)
            self._update.setVisible(False)
            self._update.setData(Qt.QVariant(toggle_id))
            self.connect(self._update, Qt.SIGNAL('triggered()'),
                         self.requestUpdate)

            toggle_id = self.menu_table['Print to Postscript file']
            self._print_to_postscript_file = Qt.QAction(
                'Print to Postscript file', self)
            self.menu.addAction(self._print_to_postscript_file)
            self._print_to_postscript_file.setVisible(False)
            self._print_to_postscript_file.setData(Qt.QVariant(toggle_id))
            self.connect(self._print_to_postscript_file,
                         Qt.SIGNAL('triggered()'), self.request_postscript)

            toggle_id = self.menu_table['Save Display in PNG Format']
            self._save_display_in_png_format = Qt.QAction(
                'Save Display in PNG Format', self)
            self.menu.addAction(self._save_display_in_png_format)
            self._save_display_in_png_format.setVisible(False)
            self._save_display_in_png_format.setData(Qt.QVariant(toggle_id))
            self.connect(self._save_display_in_png_format,
                         Qt.SIGNAL('triggered()'), self.request_PNG_file)