コード例 #1
0
ファイル: thoth.py プロジェクト: fbianco/thoth
 def _create_map_window(self, item):
     window = MapWindow(wintitle=item.measurement.param.filename,
                        icon="thoth.png", toolbar=True)
     compute_menu = window.menuBar().addMenu(_("&Compute"))
     compute_actions = []
     compute_actions.append(create_action(self, _("&Fourier transform"),
                       triggered=item.compute_fft,
                       tip=_("Compute the Fourier transfom of the curve.")))
     compute_actions.append(create_action(self, _("&Inverse Fourier transfom"),
                       triggered=item.compute_ifft,
                       tip=_("Compute the inverse Fourier transfom of the curve.")))
     compute_actions.append(create_action(self, _("&Apply Wiener filter"),
                       triggered=item.compute_wiener,
                       tip=_("Smooth the map slicewise with a Wiener filter.")))
     compute_actions.append(create_action(self, _("&Apply Gauss filter"),
                       triggered=item.compute_gaussian,
                       tip=_("Smooth the map slicewise with a Gaussian filter.")))
     compute_actions.append(create_action(self, _("&Apply Savitzky-Golay"),
                       triggered=item.compute_savitzky,
                       tip=_("Compute a smoothig or a derivative spectrum wise according to Savitzky-Golay algorithm.")))
     add_actions(compute_menu, compute_actions)
     plot = window.get_plot()
     xunit = item.measurement.param.axis1.unit
     yunit = item.measurement.param.axis2.unit
     zunit = item.measurement.param.unit
     plot.set_titles(title=None, xlabel=None, ylabel=None,
                     xunit=xunit, yunit=(yunit,zunit))
     plot.set_axis_direction('left', False)
     plot.add_item(item)
     window.set_map(item)
     window.create_slice_dock()
     return window
コード例 #2
0
 def setup_actions(self):
     CrossSectionWidget.setup_actions(self)
     self.peritem_ac = create_action(
         self,
         _("Per image cross-section"),
         icon=get_icon("csperimage.png"),
         toggled=self.cs_plot.toggle_perimage_mode,
         tip=_(
             "Enable the per-image cross-section mode, "
             "which works directly on image rows/columns.\n"
             "That is the fastest method to compute "
             "cross-section curves but it ignores "
             "image transformations (e.g. rotation)"
         ),
     )
     self.applylut_ac = create_action(
         self,
         _("Apply LUT\n(contrast settings)"),
         icon=get_icon("csapplylut.png"),
         toggled=self.cs_plot.toggle_apply_lut,
         tip=_(
             "Apply LUT (Look-Up Table) contrast settings.\n"
             "This is the easiest way to compare images "
             "which have slightly different level ranges.\n\n"
             "Note: LUT is coded over 1024 levels (0...1023)"
         ),
     )
     self.peritem_ac.setChecked(True)
     self.applylut_ac.setChecked(False)
コード例 #3
0
    def create_menus(self):
        file_menu = self.menuBar().addMenu(_("&File"))

        open_file_action = create_action(self,
                                         _("&Open File"),
                                         shortcut="Ctrl+O",
                                         triggered=self.thoth.open,
                                         tip=_("Open a measurement file"))
        #save_plot_action = create_action(self,"&Save all the plots",
        #shortcut="Ctrl+S", triggered=self.save_plots,
        #tip="Save all the plots")
        quit_action = create_action(self,
                                    _("&Quit"),
                                    triggered=self.close,
                                    shortcut="Ctrl+Q",
                                    tip=_("Close the application"))

        add_actions(file_menu, (open_file_action, None, quit_action))

        help_menu = self.menuBar().addMenu("&Help")
        about_action = create_action(self,
                                     _("&About"),
                                     shortcut='F1',
                                     triggered=self.about,
                                     tip=_('About Thoth'))

        add_actions(help_menu, (about_action, ))
コード例 #4
0
ファイル: cross_section.py プロジェクト: githubhjz/guiqwt
 def setup_actions(self):
     CrossSectionWidget.setup_actions(self)
     self.peritem_ac = create_action(
         self,
         _("Per image cross-section"),
         icon=get_icon("csperimage.png"),
         toggled=self.cs_plot.toggle_perimage_mode,
         tip=_(
             "Enable the per-image cross-section mode, "
             "which works directly on image rows/columns.\n"
             "That is the fastest method to compute "
             "cross-section curves but it ignores "
             "image transformations (e.g. rotation)"
         ),
     )
     self.applylut_ac = create_action(
         self,
         _("Apply LUT\n(contrast settings)"),
         icon=get_icon("csapplylut.png"),
         toggled=self.cs_plot.toggle_apply_lut,
         tip=_(
             "Apply LUT (Look-Up Table) contrast settings.\n"
             "This is the easiest way to compare images "
             "which have slightly different level ranges.\n\n"
             "Note: LUT is coded over 1024 levels (0...1023)"
         ),
     )
     self.peritem_ac.setChecked(True)
     self.applylut_ac.setChecked(False)
コード例 #5
0
    def setup(self):
        file_menu = self.menuBar().addMenu(_("File"))
        open_action = create_action(self,
                                    _("Open..."),
                                    shortcut="Ctrl+O",
                                    icon=get_icon('fileopen.png'),
                                    tip=_("Open an acquisition directory"),
                                    triggered=self.open)
        #apply_action = create_action(self, _("Apply"),
        #                             shortcut="Ctrl+A",
        #                             icon=get_icon('fileopen.png'),
        #                             tip=_("Open an acquisition directory"),
        #                             triggered=self.apply)
        quit_action = create_action(self,
                                    _("Quit"),
                                    shortcut="Ctrl+Q",
                                    icon=get_std_icon("DialogCloseButton"),
                                    tip=_("Quit application"),
                                    triggered=self.close)
        add_actions(file_menu, (open_action, None, quit_action))
        help_menu = self.menuBar().addMenu("?")
        about_action = create_action(
            self,
            _("About..."),
            icon=get_std_icon('MessageBoxInformation'),
            triggered=self.about)
        add_actions(help_menu, (about_action, ))

        main_toolbar = self.addToolBar("Main")
        add_actions(main_toolbar, (open_action, ))

        self.toolbar = self.addToolBar("Image")
コード例 #6
0
 def setup_actions(self):
     self.export_ac = self.export_tool.action
     self.lockscales_ac = create_action(
         self,
         _("Lock scales"),
         icon=get_icon('axes.png'),
         toggled=self.cs_plot.toggle_lockscales,
         tip=_("Lock scales to main plot axes"))
     self.lockscales_ac.setChecked(self.cs_plot.lockscales)
     self.autoscale_ac = create_action(
         self,
         _("Auto-scale"),
         icon=get_icon('csautoscale.png'),
         toggled=self.cs_plot.toggle_autoscale)
     self.autoscale_ac.toggled.connect(self.lockscales_ac.setDisabled)
     self.autoscale_ac.setChecked(self.cs_plot.autoscale_mode)
     self.refresh_ac = create_action(
         self,
         _("Refresh"),
         icon=get_icon('refresh.png'),
         triggered=lambda: self.cs_plot.update_plot())
     self.autorefresh_ac = create_action(
         self,
         _("Auto-refresh"),
         icon=get_icon('autorefresh.png'),
         toggled=self.cs_plot.toggle_autorefresh)
     self.autorefresh_ac.setChecked(self.cs_plot.autorefresh_mode)
コード例 #7
0
ファイル: simple_window.py プロジェクト: zgpglee/guiqwt
    def setup(self):
        """Setup window parameters"""
        self.setWindowIcon(get_icon("python.png"))
        self.setWindowTitle(APP_NAME)
        self.resize(QSize(600, 800))

        # Welcome message in statusbar:
        status = self.statusBar()
        status.showMessage(_("Welcome to guiqwt application example!"), 5000)

        # File menu
        file_menu = self.menuBar().addMenu(_("File"))
        new_action = create_action(
            self,
            _("New..."),
            shortcut="Ctrl+N",
            icon=get_icon("filenew.png"),
            tip=_("Create a new image"),
            triggered=self.new_image,
        )
        open_action = create_action(
            self,
            _("Open..."),
            shortcut="Ctrl+O",
            icon=get_icon("fileopen.png"),
            tip=_("Open an image"),
            triggered=self.open_image,
        )
        quit_action = create_action(
            self,
            _("Quit"),
            shortcut="Ctrl+Q",
            icon=get_std_icon("DialogCloseButton"),
            tip=_("Quit application"),
            triggered=self.close,
        )
        add_actions(file_menu, (new_action, open_action, None, quit_action))

        # Help menu
        help_menu = self.menuBar().addMenu("?")
        about_action = create_action(
            self,
            _("About..."),
            icon=get_std_icon("MessageBoxInformation"),
            triggered=self.about,
        )
        add_actions(help_menu, (about_action, ))

        main_toolbar = self.addToolBar("Main")
        add_actions(main_toolbar, (
            new_action,
            open_action,
        ))

        # Set central widget:
        toolbar = self.addToolBar("Image")
        self.mainwidget = CentralWidget(self, toolbar)
        self.setCentralWidget(self.mainwidget)
コード例 #8
0
ファイル: siggen.py プロジェクト: ve7it/NetworkAnalyser
    def setup(self, start_freq, bandwidth, numpts, max_hold):
        """Setup window parameters"""
        self.setWindowIcon(get_icon('python.png'))
        self.setWindowTitle(APP_NAME)
        #dt = QDesktopWidget()
        #print dt.numScreens(), dt.screenGeometry()
        #sz = dt.screenGeometry()

        #self.resize(QSize(sz.width()*9/10, sz.height()*9/10))

        # Welcome message in statusbar:
        status = self.statusBar()
        status.showMessage(_("Welcome to the Signal Generator application!"),
                           5000)

        # File menu
        file_menu = self.menuBar().addMenu(_("File"))

        open_action = create_action(self,
                                    _("Save"),
                                    shortcut="Ctrl+S",
                                    icon=get_std_icon("FileIcon"),
                                    tip=_("Save a File"),
                                    triggered=self.saveFileDialog)

        quit_action = create_action(self,
                                    _("Quit"),
                                    shortcut="Ctrl+Q",
                                    icon=get_std_icon("DialogCloseButton"),
                                    tip=_("Quit application"),
                                    triggered=self.close)
        add_actions(file_menu, (open_action, None, quit_action))

        # Help menu - prolly should just say "you're on your own..."!!
        help_menu = self.menuBar().addMenu("Help")
        about_action = create_action(
            self,
            _("About..."),
            icon=get_std_icon('MessageBoxInformation'),
            triggered=self.about)
        add_actions(help_menu, (about_action, ))

        main_toolbar = self.addToolBar("Main")

        # Calibration action?
        add_actions(main_toolbar, (open_action, ))

        # Set central widget:

        toolbar = self.addToolBar("Image")

        self.setCentralWidget(self.mainwidget)

        if max_hold:
            self.do_max_hold()
コード例 #9
0
ファイル: thoth.py プロジェクト: fbianco/thoth
    def _create_curve_window(self, item):
        window = ThothCurveWindow(wintitle=item.measurement.param.filename,
                             icon="curve.png", toolbar=True)
        compute_menu = window.menuBar().addMenu(_("&Compute"))
        compute_actions = []
        compute_actions.append(create_action(self, _("Scale"),
                          triggered=item.compute_scale,
                          tip=_("Scale the curve.")))
        compute_actions.append(create_action(self,_("Shift"),
                          triggered=item.compute_shift,
                          tip=_("Shift the curve")))
        compute_actions.append(create_action(self, _("&Derivative"),
                          triggered=item.compute_derivative,
                          tip=_("Compute point wise derivative of the curve.")))
        compute_actions.append(create_action(self, _("&Spline derivative"),
                          triggered=item.compute_spline_derivative,
                          tip=_("""Compute the first derivative with spline
interpolation.""")))
        compute_actions.append(create_action(self, _("&Fourier transform"),
                          triggered=item.compute_fft,
                          tip=_("Compute the Fourier transfom of the curve.")))
        compute_actions.append(create_action(self, _("&Inverse Fourier transfom"),
                          triggered=item.compute_ifft,
                          tip=_("Compute the inverse Fourier transfom of the curve.")))
        compute_actions.append(create_action(self, _("&Apply Wiener filter"),
                          triggered=item.compute_wiener,
                          tip=_("Smooth the curve with a Wiener filter.")))
        compute_actions.append(create_action(self, _("&Apply Gauss filter"),
                          triggered=item.compute_gaussian,
                          tip=_("Smooth the curve with a Gaussian filter.")))
        compute_actions.append(create_action(self, _("&Apply Savitzky-Golay"),
                          triggered=item.compute_savitzky,
                          tip=_("Compute a smoothig or a derivative of the curve according to Savitzky-Golay algorithm.")))
        compute_actions.append(create_action(self, _("Fit BCS"),
                          triggered=item.fit_bcs))
        add_actions(compute_menu, compute_actions)
        plot = window.get_plot()
        plot.set_antialiasing(True)
        t = item.measurement.param.type
        if 'ivcurve' == t:
            xlabel = _('Voltage')
            ylabel = _('Current')
        elif 'didvcurve'== t:
            xlabel = _('Energy')
            ylabel = _('Density of state')
        else:
            xlabel = _('Unknown')
            ylabel = _('Unknown')
        xunit = item.measurement.param.axis1.unit
        yunit = item.measurement.param.unit
        plot.set_titles(title=None, xlabel=xlabel, ylabel=ylabel,
                        xunit=xunit, yunit=yunit)
        plot.add_item(item)
        return window
コード例 #10
0
ファイル: wipy_gui_v3.py プロジェクト: bhclowers/WIPYDAQ
    def setup(self):
        """Setup window parameters"""
        self.setWindowIcon(get_icon('python.png'))
        self.setWindowTitle(APP_NAME)
        self.resize(QSize(600, 800))
        
        # Welcome message in statusbar:
        status = self.statusBar()
        status.showMessage(_("Welcome to guiqwt application example!"), 5000)
        self.setupMainWidget()

        # File menu
        file_menu = self.menuBar().addMenu(_("File"))

        new_action = create_action(self, _("New..."),
                                   shortcut="Ctrl+N",
                                   icon=get_icon('filenew.png'),
                                   tip=_("Create a new image"),
                                   triggered=self.new_image)
        open_action = create_action(self, _("Open..."),
                                    shortcut="Ctrl+O",
                                    icon=get_icon('fileopen.png'),
                                    tip=_("Open an image"),
                                    triggered=self.open_image)
        quit_action = create_action(self, _("Quit"),
                                    shortcut="Ctrl+Q",
                                    icon=get_std_icon("DialogCloseButton"),
                                    tip=_("Quit application"),
                                    triggered=self.close)
        add_actions(file_menu, (new_action, open_action, None, quit_action))
        
        processing_menu = self.menuBar().addMenu(_("Processing"))
        autoscale_action = create_action(self, _("Autoscale"),
                                    shortcut="Ctrl+W",
                                    tip=_("Autoscale Graph"),
                                    triggered=self.plotWidget.autoScale)
        add_actions(processing_menu, (autoscale_action,))
        # Help menu
        help_menu = self.menuBar().addMenu("?")
        about_action = create_action(self, _("About..."),
                                     icon=get_std_icon('MessageBoxInformation'),
                                     triggered=self.about)
        add_actions(help_menu, (about_action,))
        
        main_toolbar = self.addToolBar("Main")
        add_actions(main_toolbar, (new_action, open_action, ))
        
        self.curFIFOVal = 0
        self.rdb = r.Redis('localhost')

        # self.setShortcuts()

        # self.setCentralWidget(self.plotWidget)
        self.setCentralWidget(self.main_dock)  
コード例 #11
0
    def __init__(self):
        QMainWindow.__init__(self)
        self.setWindowIcon(get_icon("python.png"))
        self.setWindowTitle("Application example")

        # Instantiate dataset-related widgets:
        self.groupbox1 = DataSetShowGroupBox("Activable dataset",
                                             ExampleDataSet,
                                             comment="")
        self.groupbox2 = DataSetShowGroupBox("Standard dataset",
                                             AnotherDataSet,
                                             comment="")
        self.groupbox3 = DataSetEditGroupBox("Standard dataset",
                                             OtherDataSet,
                                             comment="")
        self.groupbox4 = DataSetEditGroupBox("Standard dataset",
                                             ExampleMultiGroupDataSet,
                                             comment="")
        self.groupbox3.SIG_APPLY_BUTTON_CLICKED.connect(self.update_window)
        self.update_groupboxes()

        splitter = QSplitter(self)
        splitter.addWidget(self.groupbox1)
        splitter.addWidget(self.groupbox2)
        splitter.addWidget(self.groupbox3)
        splitter.addWidget(self.groupbox4)
        self.setCentralWidget(splitter)
        self.setContentsMargins(10, 5, 10, 5)

        # File menu
        file_menu = self.menuBar().addMenu("File")
        quit_action = create_action(
            self,
            "Quit",
            shortcut="Ctrl+Q",
            icon=get_std_icon("DialogCloseButton"),
            tip="Quit application",
            triggered=self.close,
        )
        add_actions(file_menu, (quit_action, ))

        # Edit menu
        edit_menu = self.menuBar().addMenu("Edit")
        editparam1_action = create_action(self,
                                          "Edit dataset 1",
                                          triggered=self.edit_dataset1)
        editparam2_action = create_action(self,
                                          "Edit dataset 2",
                                          triggered=self.edit_dataset2)
        editparam4_action = create_action(self,
                                          "Edit dataset 4",
                                          triggered=self.edit_dataset4)
        add_actions(edit_menu,
                    (editparam1_action, editparam2_action, editparam4_action))
コード例 #12
0
 def _constructEditMenu(self):
     """
     """
     edit_menu = self.menuBar().addMenu("Edit")
     editparam1_action = create_action(self, "Import dataset",
                                       shortcut ="Ctrl+A",
                                       tip ="Import data from matlab structure",
                                       triggered=self.add_newData)
     deleteNode_action = create_action(self, "Delete neuron",
                                       tip ="Delete neuron from database",
                                       triggered=self.delete_Neuron)
     add_actions(edit_menu, (editparam1_action, deleteNode_action))
コード例 #13
0
 def _create_map_window(self, item):
     window = MapWindow(wintitle=item.measurement.param.filename,
                        icon="thoth.png",
                        toolbar=True)
     compute_menu = window.menuBar().addMenu(_("&Compute"))
     compute_actions = []
     compute_actions.append(
         create_action(self,
                       _("&Fourier transform"),
                       triggered=item.compute_fft,
                       tip=_("Compute the Fourier transfom of the curve.")))
     compute_actions.append(
         create_action(
             self,
             _("&Inverse Fourier transfom"),
             triggered=item.compute_ifft,
             tip=_("Compute the inverse Fourier transfom of the curve.")))
     compute_actions.append(
         create_action(
             self,
             _("&Apply Wiener filter"),
             triggered=item.compute_wiener,
             tip=_("Smooth the map slicewise with a Wiener filter.")))
     compute_actions.append(
         create_action(
             self,
             _("&Apply Gauss filter"),
             triggered=item.compute_gaussian,
             tip=_("Smooth the map slicewise with a Gaussian filter.")))
     compute_actions.append(
         create_action(
             self,
             _("&Apply Savitzky-Golay"),
             triggered=item.compute_savitzky,
             tip=
             _("Compute a smoothig or a derivative spectrum wise according to Savitzky-Golay algorithm."
               )))
     add_actions(compute_menu, compute_actions)
     plot = window.get_plot()
     xunit = item.measurement.param.axis1.unit
     yunit = item.measurement.param.axis2.unit
     zunit = item.measurement.param.unit
     plot.set_titles(title=None,
                     xlabel=None,
                     ylabel=None,
                     xunit=xunit,
                     yunit=(yunit, zunit))
     plot.set_axis_direction('left', False)
     plot.add_item(item)
     window.set_map(item)
     window.create_slice_dock()
     return window
コード例 #14
0
ファイル: histogram.py プロジェクト: berrosse/guiqwt
 def setup_actions(self):
     fullrange_ac = create_action(self, _("Full range"),
                                  icon=get_icon("full_range.png"),
                                  triggered=self.histogram.set_full_range,
                                  tip=_("Scale the image's display range "
                                        "according to data range") )
     autorange_ac = create_action(self, _("Eliminate outliers"),
                                  icon=get_icon("eliminate_outliers.png"),
                                  triggered=self.eliminate_outliers,
                                  tip=_("Eliminate levels histogram "
                                        "outliers and scale the image's "
                                        "display range accordingly") )
     add_actions(self.toolbar, [fullrange_ac, autorange_ac])
コード例 #15
0
ファイル: histogram.py プロジェクト: HaMF/guiqwt
 def setup_actions(self):
     fullrange_ac = create_action(self, _("Full range"),
                                  icon=get_icon("full_range.png"),
                                  triggered=self.histogram.set_full_range,
                                  tip=_("Scale the image's display range "
                                        "according to data range") )
     autorange_ac = create_action(self, _("Eliminate outliers"),
                                  icon=get_icon("eliminate_outliers.png"),
                                  triggered=self.eliminate_outliers,
                                  tip=_("Eliminate levels histogram "
                                        "outliers and scale the image's "
                                        "display range accordingly") )
     add_actions(self.toolbar, [fullrange_ac, autorange_ac])
コード例 #16
0
ファイル: cross_section.py プロジェクト: stonebig/guiqwt-1
 def setup_actions(self):
     self.export_ac = self.export_tool.action
     self.autoscale_ac = create_action(self, _("Auto-scale"),
                                icon=get_icon('csautoscale.png'),
                                toggled=self.cs_plot.toggle_autoscale)
     self.autoscale_ac.setChecked(self.cs_plot.autoscale_mode)
     self.refresh_ac = create_action(self, _("Refresh"),
                                icon=get_icon('refresh.png'),
                                triggered=lambda: self.cs_plot.update_plot())
     self.autorefresh_ac = create_action(self, _("Auto-refresh"),
                                icon=get_icon('autorefresh.png'),
                                toggled=self.cs_plot.toggle_autorefresh)
     self.autorefresh_ac.setChecked(self.cs_plot.autorefresh_mode)
コード例 #17
0
    def __init__(self, parent, toolbar):
        QSplitter.__init__(self, parent)
        self.data_ref = None
        self.setContentsMargins(10, 10, 10, 10)
        self.setOrientation(Qt.Vertical)

        dsinfo = DSInfo(self)
        self.addWidget(dsinfo)
        dsproperties = DSProperties(self)
        self.addWidget(dsproperties)
        imagelistwithproperties = ImageListWithProperties(self)
        self.addWidget(imagelistwithproperties)
        self.imagelist = imagelistwithproperties.imagelist
        self.imagelist.currentRowChanged.connect(self.current_item_changed)
        self.imagelist.itemSelectionChanged.connect(self.selection_changed)
        self.ds = dsproperties.datas
        self.info = dsinfo.datas
        self.ds.SIG_APPLY_BUTTON_CLICKED.connect(self.properties_changed)
        self.properties = imagelistwithproperties.properties
        self.properties.SIG_APPLY_BUTTON_CLICKED.connect(
            self.properties_changed)

        self.imagewidget = CurveWidget(self)
        self.item = None
        self.flagitem = None
        self.flagname = ""

        self.imagewidget.add_toolbar(toolbar, "default")
        self.imagewidget.register_standard_tools()

        flag = create_action(self,
                             _("Get preflag from file..."),
                             icon=get_icon('eraser.png'),
                             tip=_("Get a preflag from file"),
                             triggered=self.preflag)
        fit = create_action(self,
                            _("Open fit window..."),
                            icon=get_icon('polyline.png'),
                            tip=_("Open fit window"),
                            triggered=self.fit_win)
        #apply = create_action(self, _("Apply fit file..."),
        #                      icon=get_icon('export.png'), tip=_("Apply fit file"),
        #                      triggered=self.apply_fit)
        add_actions(toolbar, [None, flag, fit])
        self.addWidget(self.imagewidget)

        self.images = []
        self.setStretchFactor(0, 0)
        self.setStretchFactor(1, 1)
        self.setHandleWidth(10)
        self.setSizes([50, 100, 200, 600])
コード例 #18
0
 def create_action(
     self,
     title,
     triggered=None,
     toggled=None,
     shortcut=None,
     icon=None,
     tip=None,
     checkable=None,
     context=Qt.WindowShortcut,
     enabled=None,
 ):
     """
     Create a new QAction
     """
     return create_action(
         self.main,
         title,
         triggered=triggered,
         toggled=toggled,
         shortcut=shortcut,
         icon=icon,
         tip=tip,
         checkable=checkable,
         context=context,
         enabled=enabled,
     )
コード例 #19
0
ファイル: gui.py プロジェクト: thelegend831/ZephyrApp
    def _setup_menu(self):
        # File menu
        file_menu = self.menuBar().addMenu(_("File"))
        settings_action = create_action(self, _("Settings"),
                                   icon=get_icon('settings.png'),
                                   tip=_("Settings"),
                                   triggered=self.edit_settings)
        quit_action = create_action(self, _("Quit"),
                                    shortcut="Ctrl+Q",
                                    icon=get_std_icon("DialogCloseButton"),
                                    tip=_("Quit application"),
                                    triggered=self.close)
        add_actions(file_menu, (settings_action, None, quit_action))

        # View menu
        view_menu = self.createPopupMenu()
        view_menu.setTitle(_(u"&View"))
        self.menuBar().addMenu(view_menu)

        # Help menu
        help_menu = self.menuBar().addMenu("?")
        about_action = create_action(self, _("About..."),
                                     icon=get_std_icon('MessageBoxInformation'),
                                     triggered=self.about)
        add_actions(help_menu, (about_action,))

        # Base toolbar
        self.connectAction = QAction(QIcon('common/disconnected.png'), 'Connect', self)
        self.connectAction.triggered.connect( self.connect_button )
        self.playAction = QAction(QIcon('common/play.png'), 'Play free', self)
        self.playAction.triggered.connect( self.start_free_session_button )
        self.stopAction = QAction(QIcon('common/stop.png'), 'Stop', self)
        self.stopAction.triggered.connect( self.stop_button )
        self.timedAction = QAction(QIcon('common/timed.png'), 'Start', self)
        self.timedAction.triggered.connect( self.start_timed_session_button )

        self.toolbar = self.addToolBar('Controls')
        self.toolbar.addAction( self.connectAction )
        self.toolbar.addAction( self.playAction )
        self.toolbar.addAction( self.stopAction )
        self.toolbar.addAction( self.timedAction )
        self.toolbar.setObjectName('Controls')

        # Time toolbar
        self.timer = Timer( self )
        self.connect( self.timer, SIGNAL( 'SessionStop' ), self.session_stop )
コード例 #20
0
ファイル: editgroupbox.py プロジェクト: Alwnikrotikz/guidata
 def __init__(self):
     QMainWindow.__init__(self)
     self.setWindowIcon(get_icon('python.png'))
     self.setWindowTitle("Application example")
     
     # Instantiate dataset-related widgets:
     self.groupbox1 = DataSetShowGroupBox("Activable dataset",
                                          ExampleDataSet, comment='')
     self.groupbox2 = DataSetShowGroupBox("Standard dataset",
                                          AnotherDataSet, comment='')
     self.groupbox3 = DataSetEditGroupBox("Standard dataset",
                                          OtherDataSet, comment='')
     self.groupbox4 = DataSetEditGroupBox("Standard dataset",
                                          ExampleMultiGroupDataSet, comment='')
     self.connect(self.groupbox3, SIGNAL("apply_button_clicked()"),
                  self.update_window)
     self.update_groupboxes()
     
     splitter = QSplitter(self)
     splitter.addWidget(self.groupbox1)
     splitter.addWidget(self.groupbox2)
     splitter.addWidget(self.groupbox3)
     splitter.addWidget(self.groupbox4)
     self.setCentralWidget(splitter)
     self.setContentsMargins(10, 5, 10, 5)
     
     # File menu
     file_menu = self.menuBar().addMenu("File")
     quit_action = create_action(self, "Quit",
                                 shortcut="Ctrl+Q",
                                 icon=get_std_icon("DialogCloseButton"),
                                 tip="Quit application",
                                 triggered=self.close)
     add_actions(file_menu, (quit_action, ))
     
     # Edit menu
     edit_menu = self.menuBar().addMenu("Edit")
     editparam1_action = create_action(self, "Edit dataset 1",
                                       triggered=self.edit_dataset1)
     editparam2_action = create_action(self, "Edit dataset 2",
                                       triggered=self.edit_dataset2)
     editparam4_action = create_action(self, "Edit dataset 4",
                                       triggered=self.edit_dataset4)
     add_actions(edit_menu, (editparam1_action,
                             editparam2_action,
                             editparam4_action))
コード例 #21
0
ファイル: simple_window.py プロジェクト: HaMF/guiqwt
 def setup(self):
     """Setup window parameters"""
     self.setWindowIcon(get_icon('python.png'))
     self.setWindowTitle(APP_NAME)
     self.resize(QSize(600, 800))
     
     # Welcome message in statusbar:
     status = self.statusBar()
     status.showMessage(_("Welcome to guiqwt application example!"), 5000)
     
     # File menu
     file_menu = self.menuBar().addMenu(_("File"))
     new_action = create_action(self, _("New..."),
                                shortcut="Ctrl+N",
                                icon=get_icon('filenew.png'),
                                tip=_("Create a new image"),
                                triggered=self.new_image)
     open_action = create_action(self, _("Open..."),
                                 shortcut="Ctrl+O",
                                 icon=get_icon('fileopen.png'),
                                 tip=_("Open an image"),
                                 triggered=self.open_image)
     quit_action = create_action(self, _("Quit"),
                                 shortcut="Ctrl+Q",
                                 icon=get_std_icon("DialogCloseButton"),
                                 tip=_("Quit application"),
                                 triggered=self.close)
     add_actions(file_menu, (new_action, open_action, None, quit_action))
     
     # Help menu
     help_menu = self.menuBar().addMenu("?")
     about_action = create_action(self, _("About..."),
                                  icon=get_std_icon('MessageBoxInformation'),
                                  triggered=self.about)
     add_actions(help_menu, (about_action,))
     
     main_toolbar = self.addToolBar("Main")
     add_actions(main_toolbar, (new_action, open_action, ))
     
     # Set central widget:
     toolbar = self.addToolBar("Image")
     self.mainwidget = CentralWidget(self, toolbar)
     self.setCentralWidget(self.mainwidget)
コード例 #22
0
ファイル: main.py プロジェクト: MIZiper/rdsp
    def initUI(self):
        self.setWindowTitle(APPNAME)

        file_menu = self.menuBar().addMenu('File')
        new_proj_action = create_action(self, 'New Project', self.new_project)
        open_proj_action = create_action(self, 'Open Project',
                                         self.open_project)
        import_orosMat_action = create_action(self, 'Import Oros Mat',
                                              self.import_orosMat)
        quit_action = create_action(self, 'Quit', self.quit)
        add_actions(file_menu, (new_proj_action, open_proj_action, None,
                                import_orosMat_action, None, quit_action))

        progress_bar = QProgressBar(self)
        progress_bar.setFixedWidth(200)
        progress_bar.setTextVisible(False)
        progress_bar.setVisible(False)
        self.progress_bar = progress_bar
        self.statusBar().addPermanentWidget(progress_bar)

        self.toolBar = self.addToolBar('Curves')

        main_widget = QWidget(self)
        main_layout = QGridLayout(main_widget)
        side_layout = QGridLayout()
        plot_widget = PlotWidget(main_widget)
        self.plot_widget = plot_widget

        list_widget = ListWidget()
        prop_widget = PropertyWidget()
        list_widget.registerPropertyWindow(prop_widget)
        side_layout.addWidget(list_widget, 0, 0)
        side_layout.addWidget(prop_widget, 1, 0)
        side_layout.setRowStretch(0, 2)
        side_layout.setRowStretch(1, 1)
        self.list_widget = list_widget

        main_layout.addLayout(side_layout, 0, 0)
        main_layout.addWidget(plot_widget, 0, 1)
        main_layout.setColumnStretch(0, 1)
        main_layout.setColumnStretch(1, 3)

        self.setCentralWidget(main_widget)
コード例 #23
0
 def _create_image_window(self, item):
     window = ImageWindow(wintitle=item.measurement.param.filename,
                          icon="image.png",
                          toolbar=True)
     compute_menu = window.menuBar().addMenu(_("&Compute"))
     compute_actions = []
     compute_actions.append(
         create_action(self,
                       _("&Line correction"),
                       triggered=item.compute_line_detrend,
                       tip=_("Apply a linewise slope correction.")))
     compute_actions.append(
         create_action(self,
                       _("&Fourier transform"),
                       triggered=item.compute_fft,
                       tip=_("Compute the Fourier transfom of the curve.")))
     compute_actions.append(
         create_action(
             self,
             _("&Inverse Fourier transfom"),
             triggered=item.compute_ifft,
             tip=_("Compute the inverse Fourier transfom of the curve.")))
     compute_actions.append(
         create_action(self,
                       _("&Apply Wiener filter"),
                       triggered=item.compute_wiener,
                       tip=_("Smooth the curve with a Wiener filter.")))
     compute_actions.append(
         create_action(self,
                       _("&Apply Gauss filter"),
                       triggered=item.compute_gaussian,
                       tip=_("Smooth the curve with a Gaussian filter.")))
     compute_actions.append(
         create_action(
             self,
             _("&Apply Savitzky-Golay"),
             triggered=item.compute_savitzky,
             tip=
             _("Compute a smoothig or a derivative of the curve according to Savitzky-Golay algorithm."
               )))
     compute_actions.append(
         create_action(self,
                       _("&Zeroes"),
                       triggered=item.compute_zeroes,
                       tip=_("Set the minimum of the data to zero.")))
     add_actions(compute_menu, compute_actions)
     plot = window.get_plot()
     xunit = item.measurement.param.axis1.unit
     yunit = item.measurement.param.axis2.unit
     zunit = item.measurement.param.unit
     plot.set_titles(title=None,
                     xlabel=None,
                     ylabel=None,
                     xunit=xunit,
                     yunit=(yunit, zunit))
     plot.set_axis_direction('left', False)
     plot.add_item(item)
     return window
コード例 #24
0
ファイル: plot.py プロジェクト: alimuldal/guiqwt
 def create_action(self, title, triggered=None, toggled=None,
                   shortcut=None, icon=None, tip=None, checkable=None,
                   context=Qt.WindowShortcut, enabled=None):
     """
     Create a new QAction
     """
     return create_action(self.main, title, triggered=triggered,
                          toggled=toggled, shortcut=shortcut,
                          icon=icon, tip=tip, checkable=checkable,
                          context=context, enabled=enabled)
コード例 #25
0
ファイル: cross_section.py プロジェクト: CARIBOuSystem/guiqwt
 def setup_actions(self):
     self.export_ac = self.export_tool.action
     self.autoscale_ac = create_action(
         self,
         _("Auto-scale"),
         icon=get_icon('csautoscale.png'),
         toggled=self.cs_plot.toggle_autoscale)
     self.autoscale_ac.setChecked(self.cs_plot.autoscale_mode)
     self.refresh_ac = create_action(
         self,
         _("Refresh"),
         icon=get_icon('refresh.png'),
         triggered=lambda: self.cs_plot.update_plot())
     self.autorefresh_ac = create_action(
         self,
         _("Auto-refresh"),
         icon=get_icon('autorefresh.png'),
         toggled=self.cs_plot.toggle_autorefresh)
     self.autorefresh_ac.setChecked(self.cs_plot.autorefresh_mode)
コード例 #26
0
    def setup(self):
        help_menu = self.menuBar().addMenu("?")
        about_action = create_action(
            self,
            _("About..."),
            icon=get_std_icon('MessageBoxInformation'),
            triggered=self.about)
        add_actions(help_menu, (about_action, ))

        self.toolbar = self.addToolBar("Image")
        self.setup_central_widget(FitWidget, self.toolbar)
        self.mainwidget.open_setup(self.data, self.begin, self.end)
コード例 #27
0
ファイル: thothgui.py プロジェクト: fbianco/thoth
    def create_menus(self):
        file_menu = self.menuBar().addMenu(_("&File"))

        open_file_action = create_action(self, _("&Open File"),
                                    shortcut="Ctrl+O",
                                    triggered=self.thoth.open,
                                    tip=_("Open a measurement file"))
        #save_plot_action = create_action(self,"&Save all the plots",
            #shortcut="Ctrl+S", triggered=self.save_plots,
            #tip="Save all the plots")
        quit_action = create_action(self, _("&Quit"), triggered=self.close,
            shortcut="Ctrl+Q", tip=_("Close the application"))

        add_actions(file_menu, (open_file_action, None, quit_action))

        help_menu = self.menuBar().addMenu("&Help")
        about_action = create_action(self, _("&About"),
                                     shortcut='F1', triggered=self.about,
                                     tip=_('About Thoth'))

        add_actions(help_menu, (about_action,))
コード例 #28
0
ファイル: cross_section.py プロジェクト: githubhjz/guiqwt
 def setup_actions(self):
     self.export_ac = self.export_tool.action
     self.lockscales_ac = create_action(
         self,
         _("Lock scales"),
         icon=get_icon("axes.png"),
         toggled=self.cs_plot.toggle_lockscales,
         tip=_("Lock scales to main plot axes"),
     )
     self.lockscales_ac.setChecked(self.cs_plot.lockscales)
     self.autoscale_ac = create_action(
         self, _("Auto-scale"), icon=get_icon("csautoscale.png"), toggled=self.cs_plot.toggle_autoscale
     )
     self.autoscale_ac.toggled.connect(self.lockscales_ac.setDisabled)
     self.autoscale_ac.setChecked(self.cs_plot.autoscale_mode)
     self.refresh_ac = create_action(
         self, _("Refresh"), icon=get_icon("refresh.png"), triggered=lambda: self.cs_plot.update_plot()
     )
     self.autorefresh_ac = create_action(
         self, _("Auto-refresh"), icon=get_icon("autorefresh.png"), toggled=self.cs_plot.toggle_autorefresh
     )
     self.autorefresh_ac.setChecked(self.cs_plot.autorefresh_mode)
コード例 #29
0
ファイル: plot.py プロジェクト: CARIBOuSystem/guiqwt
 def create_action(self,
                   title,
                   triggered=None,
                   toggled=None,
                   shortcut=None,
                   icon=None,
                   tip=None):
     return create_action(self.main,
                          title,
                          triggered=triggered,
                          toggled=toggled,
                          shortcut=shortcut,
                          icon=icon,
                          tip=tip)
コード例 #30
0
ファイル: gui_LMratio.py プロジェクト: bps10/LM-Ratio
    def setup(self):
        '''Setup window parameters
        '''
        self.setWindowIcon(get_icon('python.png'))
        self.setWindowTitle('LM cone ratios')
        self.resize(QSize(400, 600))

        # File menu
        file_menu = self.menuBar().addMenu(("File"))
        quit_action = create_action(self, ("Quit"),
                shortcut="Ctrl+Q",
                icon=get_std_icon("DialogCloseButton"),
                tip=("Quit application"),
                triggered=self.close)
        add_actions(file_menu, (quit_action,))

        change_dir_action = create_action(self, ("Change save dir"),
                 triggered=self.change_save_dir)
        add_actions(file_menu, (change_dir_action,))
        

        # Set central widget:
        self.mainwidget = CentralWidget(self)
        self.setCentralWidget(self.mainwidget)
コード例 #31
0
 def _constructFileMenu(self):
     """
     """
     file_menu = self.menuBar().addMenu("File")
     quit_action = create_action(self, "Quit",
                                 shortcut="Ctrl+Q",
                                 icon=get_std_icon("DialogCloseButton"),
                                 tip="Quit application",
                                 triggered=self.close)
     openDB_action = create_action(self, "Open database",
                                  shortcut ="Ctrl+D",
                                  tip ="Open an existing database into scroll area",
                                  triggered=self.open_Database)
     createDB_action = create_action(self,"New database",
                                     shortcut ="Ctrl+N",
                                     tip ="Create a new database",
                                     triggered=self.create_Database)
     closeDB_action = create_action(self,"Close database",
                                    shortcut ="Ctrl+W",
                                    tip = "Close an open database",
                                    triggered=self.close_Database)
     
     add_actions(file_menu, (quit_action, openDB_action, createDB_action,
                             closeDB_action))
コード例 #32
0
    def contextMenu(self, position):
        items = self.selectedItems()
        if len(items) > 0:
            boundObject = items[0].data(0, 33)
            if boundObject is None: return
            moduleClassName = boundObject.ModuleName
            moduleClass = gl.moduleManager.getModule(moduleClassName)
            if moduleClass is None: return

            menu = QtGui.QMenu()
            actions = (create_action(
                menu, action['title'],
                functools.partial(getattr(moduleClass, action['action']),
                                  boundObject))
                       for action in moduleClass.ContextMenu)
            add_actions(menu, actions)
            menu.exec_(self.viewport().mapToGlobal(position))
コード例 #33
0
ファイル: gui.py プロジェクト: KGerring/lintful
	def __init__(self):
		QMainWindow.__init__(self)
		self.setWindowTitle("Application example")
		file_menu = self.menuBar().addMenu("File")
		quit_action = create_action(self, "Quit",
		                            shortcut="Ctrl+Q",
		                            icon=get_std_icon("DialogCloseButton"),
		                            tip="Quit application",
		                            triggered=self.close)
		add_actions(file_menu, (quit_action,))
		edit_menu = self.menuBar().addMenu("Edit")
		
		self.groupbox = DataSetEditGroupBox("Standard dataset", OtherDataSet, comment='')
		self.groupbox.SIG_APPLY_BUTTON_CLICKED.connect(self.update_window)
		self.display = DataSetEditGroupBox("Read-only dataset", OtherDataSet, comment='')
		
		splitter = QSplitter(self)
		splitter.addWidget(self.groupbox)
		self.setCentralWidget(splitter)
		self.setContentsMargins(10, 5, 10, 5)
コード例 #34
0
    def __init__(self, parent, toolbar):
        QSplitter.__init__(self, parent)
        self.data_ref = None
        self.setContentsMargins(10, 10, 10, 10)
        self.setOrientation(Qt.Vertical)

        fitproperties = FitProperties(self)
        self.addWidget(fitproperties)
        self.fit_t = fitproperties.datas
        self.fit_t.SIG_APPLY_BUTTON_CLICKED.connect(self.properties_changed)

        self.imagewidget = CurveWidget2(self)
        #self.reswidget = CurveWidget(self)
        print self.imagewidget.synchronized_plots
        self.item = None
        self.fitem = None
        self.ritem = None
        self.flagitem = None

        self.imagewidget.add_toolbar(toolbar, "default")
        self.imagewidget.register_standard_tools()
        self.imagewidget.add_tool(RectZoomToolsig)

        self.imagewidget.plot.SIG_PLOT_AXIS_CHANGED.connect(self.sync_zoom)

        fitfile = create_action(self,
                                _("Update fit file..."),
                                icon=get_icon('fileopen.png'),
                                tip=_("Update fit file"),
                                triggered=self.fitfile)
        add_actions(toolbar, [fitfile])

        self.addWidget(self.imagewidget)
        #self.addWidget(self.reswidget)

        self.fitc = None
        self.setStretchFactor(0, 0)
        self.setStretchFactor(1, 1)
        self.setHandleWidth(10)
        self.setSizes([100, 600, 100])
コード例 #35
0
ファイル: thoth.py プロジェクト: fbianco/thoth
 def _create_image_window(self, item):
     window = ImageWindow(wintitle=item.measurement.param.filename,
                          icon="image.png", toolbar=True)
     compute_menu = window.menuBar().addMenu(_("&Compute"))
     compute_actions = []
     compute_actions.append(create_action(self, _("&Line correction"),
                       triggered=item.compute_line_detrend,
                       tip=_("Apply a linewise slope correction.")))
     compute_actions.append(create_action(self, _("&Fourier transform"),
                       triggered=item.compute_fft,
                       tip=_("Compute the Fourier transfom of the curve.")))
     compute_actions.append(create_action(self, _("&Inverse Fourier transfom"),
                       triggered=item.compute_ifft,
                       tip=_("Compute the inverse Fourier transfom of the curve.")))
     compute_actions.append(create_action(self, _("&Apply Wiener filter"),
                       triggered=item.compute_wiener,
                       tip=_("Smooth the curve with a Wiener filter.")))
     compute_actions.append(create_action(self, _("&Apply Gauss filter"),
                       triggered=item.compute_gaussian,
                       tip=_("Smooth the curve with a Gaussian filter.")))
     compute_actions.append(create_action(self, _("&Apply Savitzky-Golay"),
                       triggered=item.compute_savitzky,
                       tip=_("Compute a smoothig or a derivative of the curve according to Savitzky-Golay algorithm.")))
     compute_actions.append(create_action(self, _("&Zeroes"),
                       triggered=item.compute_zeroes,
                       tip=_("Set the minimum of the data to zero.")))
     add_actions(compute_menu, compute_actions)
     plot = window.get_plot()
     xunit = item.measurement.param.axis1.unit
     yunit = item.measurement.param.axis2.unit
     zunit = item.measurement.param.unit
     plot.set_titles(title=None, xlabel=None, ylabel=None,
                     xunit=xunit, yunit=(yunit,zunit))
     plot.set_axis_direction('left', False)
     plot.add_item(item)
     return window
コード例 #36
0
ファイル: plot.py プロジェクト: johnstile/guiqwt
 def create_action(self, title, triggered=None, toggled=None,
                   shortcut=None, icon=None, tip=None):
     return create_action(self.main, title, triggered=triggered,
                          toggled=toggled, shortcut=shortcut,
                          icon=icon, tip=tip)
コード例 #37
0
ファイル: PowerMeter.py プロジェクト: BenMoon/LabSoft
    def __init__(self):
        QMainWindow.__init__(self)

        self.stage = None
        self.stopOsci = False
        self.stopMeasure = False

        self.setWindowTitle(APP_NAME)

        ###############
        # Powermeter record
        curveplot_toolbar = self.addToolBar(_("Curve Plotting Toolbar"))
        self.curveWidget1 = DockablePlotWidget(self, CurveWidget,
                                               curveplot_toolbar)
        self.curveWidget1.calcFun.addFun('s', lambda x: x, lambda x: x)
        self.curveWidget1.calcFun.addFun('min', lambda x: x / 60,
                                         lambda x: x * 60)
        self.curveWidget1.calcFun.addFun('hour', lambda x: x / 3600,
                                         lambda x: x * 3600)
        plot1 = self.curveWidget1.get_plot()
        self.signal1 = SignalFT(self, plot=plot1)

        ##############
        # Main window widgets
        self.tabwidget = DockableTabWidget(self)
        #self.tabwidget.setMaximumWidth(500)
        self.maestroUi = MaestroUi(self)
        self.fileUi = FileUi(self)
        self.tabwidget.addTab(self.maestroUi,
                              QIcon('icons/Handyscope_HS4.png'), _("Maestro"))
        self.tabwidget.addTab(self.fileUi, get_icon('filesave.png'), _('File'))
        self.add_dockwidget(self.tabwidget, _("Inst. sett."))
        #        self.setCentralWidget(self.tabwidget)
        self.dock1 = self.add_dockwidget(self.curveWidget1,
                                         title=_("Powermeter"))

        ################
        # connect signals
        self.maestroUi.newPlotData.connect(self.signal1.updatePlot)
        self.curveWidget1.calcFun.idxChanged.connect(self.signal1.funChanged)
        self.fileUi.saveTxtBtn.released.connect(self.saveDataTxt)
        self.fileUi.saveHdfBtn.released.connect(self.saveDataHDF5)
        '''
        self.piUi.startScanBtn.released.connect(self.startMeasureThr)
        self.piUi.stopScanBtn.released.connect(self.stopMeasureThr)
        self.piUi.xAxeChanged.connect(self.tdSignal.updateXAxe)
        self.piUi.xAxeChanged.connect(self.fdSignal.updateXAxe)
        self.piUi.niceBtn.released.connect(self.showMakeNicerWidget)
        self.tiepieUi.scpConnected.connect(self.startOsciThr)
        self.tiepieUi.xAxeChanged.connect(self.osciSignal.updateXAxe)
        self.tiepieUi.yAxeChanged.connect(self.osciSignal.updateYAxe)
        self.tiepieUi.triggLevelChanged.connect(self.osciSignal.setHCursor)
        #self.piUi.centerBtn.released.connect(
        #    lambda x=None: self.piUi.setCenter(self.tdSignal.getVCursor()))
        self.tdSignal.plot.SIG_MARKER_CHANGED.connect(
            lambda x=None: self.piUi.newOffset(self.tdSignal.getVCursor()))

        
        self.tdWidget.calcFun.idxChanged.connect(self.tdSignal.funChanged)
        self.fdWidget.calcFun.idxChanged.connect(self.fdSignal.funChanged)

        self.updateOsciPlot.connect(self.osciSignal.updatePlot)
        self.updateTdPlot.connect(self.tdSignal.updatePlot)
        self.updateFdPlot.connect(lambda data:
            self.fdSignal.updatePlot(self.fdSignal.computeFFT(data)))
        '''
        ################
        # create threads
        #self.osciThr = GenericThread(self.getOsciData)
        '''
        self.osciThr = QThread()
        self.osciThr.start()
        self.osciWorker = GenericWorker(self.getOsciData)
        self.osciWorker.moveToThread(self.osciThr)
        
        #self.measureThr = GenericThread(self.getMeasureData)
        self.measureThr = QThread()
        self.measureThr.start()
        self.measureWorker = GenericWorker(self.getMeasureData)
        self.measureWorker.moveToThread(self.measureThr)
        '''

        ################
        # File menu
        file_menu = self.menuBar().addMenu(_("File"))
        self.quit_action = create_action(
            self,
            _("Quit"),
            shortcut="Ctrl+Q",
            icon=get_std_icon("DialogCloseButton"),
            tip=_("Quit application"),
            triggered=self.close)
        saveData = create_action(self,
                                 _("Save"),
                                 shortcut="Ctrl+S",
                                 icon=get_std_icon("DialogSaveButton"),
                                 tip=_("Save data"),
                                 triggered=self.saveDataHDF5)
        #add_actions(file_menu, (triggerTest_action, saveData, None, self.quit_action))

        ##############
        # Eventually add an internal console (requires 'spyderlib')
        self.sift_proxy = SiftProxy(self)
        if DockableConsole is None:
            self.console = None
        else:
            import time, scipy.signal as sps, scipy.ndimage as spi
            ns = {
                'ftir': self.sift_proxy,
                'np': np,
                'sps': sps,
                'spi': spi,
                'os': os,
                'sys': sys,
                'osp': osp,
                'time': time
            }
            msg = "Example: ftir.s[0] returns signal object #0\n"\
                  "Modules imported at startup: "\
                  "os, sys, os.path as osp, time, "\
                  "numpy as np, scipy.signal as sps, scipy.ndimage as spi"
            self.console = DockableConsole(self, namespace=ns, message=msg)
            self.add_dockwidget(self.console, _("Console"))
            '''
            try:
                self.console.interpreter.widget_proxy.sig_new_prompt.connect(
                                            lambda txt: self.refresh_lists())
            except AttributeError:
                print('sift: spyderlib is outdated', file=sys.stderr)
            '''

        # Show main window and raise the signal plot panel
        self.show()
コード例 #38
0
ファイル: pvloop.py プロジェクト: xi2pi/pv-loop
    def __init__(self):
        QMainWindow.__init__(self)
        self.setWindowIcon(get_icon('python.png'))
        self.setWindowTitle("PV Loop Simulation")

        pal = QtGui.QPalette()
        role = QtGui.QPalette.Background
        pal.setColor(role, QtGui.QColor(255, 255, 255))
        self.setPalette(pal)

        self.textEdit = QtGui.QLabel('None')

        self.loadButton = QtGui.QPushButton("Load")
        self.loadButton.clicked.connect(self.on_click)
        self.buttonSave = QtGui.QPushButton('Clear Plot', self)
        self.buttonSave.clicked.connect(self.clearPlots)
        #self.connect(self.smoothGB, SIGNAL("apply_button_clicked()"),
        #self.update_window)
        self.table1 = QtGui.QTableWidget()
        self.table2 = QtGui.QTableWidget()

        self.fileName = ''
        self.lastClicked = []
        self.number_plots = 0

        self.pw1 = PG.PlotWidget(name='VTC')
        self.pw1.setLabel('left', 'Volume', units='mL')
        self.pw1.setLabel('bottom', 'Time', units='s')
        self.pw1.setBackground((255, 255, 255))

        self.pw2 = PG.PlotWidget(name='VTC')
        self.pw2.setBackground((255, 255, 255))
        self.pw2.setLabel('left', 'Pressure', units='mmHg')
        self.pw2.setLabel('bottom', 'Time', units='s')

        self.pw3 = PG.PlotWidget(name='PV')
        self.pw3.setBackground((255, 255, 255))
        self.pw3.setLabel('left', 'Pressure', units='mmHg')
        self.pw3.setLabel('bottom', 'Volume', units='ml')

        #horizontalLayout = QtGui.QHBoxLayout(self)
        splitter = QSplitter(QtCore.Qt.Vertical)
        splitter2 = QSplitter(QtCore.Qt.Vertical)
        splitterH = QSplitter(QtCore.Qt.Horizontal)

        splitter.addWidget(self.loadButton)
        splitter.addWidget(self.pw1)
        splitter.addWidget(self.pw2)
        splitter.addWidget(self.pw3)

        splitter2.addWidget(self.table1)
        splitter2.addWidget(self.table2)
        splitter2.addWidget(self.buttonSave)

        splitterH.addWidget(splitter)
        splitterH.addWidget(splitter2)

        self.table1.setRowCount(5)
        self.table1.setColumnCount(2)

        self.table2.setRowCount(8)
        self.table2.setColumnCount(2)

        self.table1.setItem(0, 0,
                            QtGui.QTableWidgetItem("Number of Loops [-]"))
        self.table1.setItem(0, 1, QtGui.QTableWidgetItem("4"))
        self.table1.setItem(1, 0, QtGui.QTableWidgetItem("HR [bpm]"))
        self.table1.setItem(1, 1, QtGui.QTableWidgetItem("70"))
        self.table1.setItem(2, 0, QtGui.QTableWidgetItem("V (LV) start [ml]"))
        self.table1.setItem(2, 1, QtGui.QTableWidgetItem("135"))
        self.table1.setItem(3, 0, QtGui.QTableWidgetItem("Pa start [mmHg]"))
        self.table1.setItem(3, 1, QtGui.QTableWidgetItem("96"))
        self.table1.setItem(4, 0, QtGui.QTableWidgetItem("Pv start [mmHg]"))
        self.table1.setItem(4, 1, QtGui.QTableWidgetItem("6"))

        self.table2.setItem(0, 0, QtGui.QTableWidgetItem("Rp"))
        self.table2.setItem(0, 1, QtGui.QTableWidgetItem("1.3"))
        self.table2.setItem(1, 0, QtGui.QTableWidgetItem("Ra"))
        self.table2.setItem(1, 1, QtGui.QTableWidgetItem("0.1"))
        self.table2.setItem(2, 0, QtGui.QTableWidgetItem("Rin"))
        self.table2.setItem(2, 1, QtGui.QTableWidgetItem("0.08782"))
        self.table2.setItem(3, 0, QtGui.QTableWidgetItem("Ca"))
        self.table2.setItem(3, 1, QtGui.QTableWidgetItem("1.601"))
        self.table2.setItem(4, 0, QtGui.QTableWidgetItem("Cv"))
        self.table2.setItem(4, 1, QtGui.QTableWidgetItem("1.894"))
        self.table2.setItem(5, 0, QtGui.QTableWidgetItem("Vd"))
        self.table2.setItem(5, 1, QtGui.QTableWidgetItem("1.123"))
        self.table2.setItem(6, 0, QtGui.QTableWidgetItem("Emax"))
        self.table2.setItem(6, 1, QtGui.QTableWidgetItem("1.5"))
        self.table2.setItem(7, 0, QtGui.QTableWidgetItem("Emin"))
        self.table2.setItem(7, 1, QtGui.QTableWidgetItem("0.037"))

        self.setCentralWidget(splitterH)

        self.setContentsMargins(10, 5, 10, 5)
        self.setGeometry(100, 100, 1000, 800)

        # File menu
        file_menu = self.menuBar().addMenu("File")
        quit_action = create_action(self,
                                    "Quit",
                                    shortcut="Ctrl+Q",
                                    icon=get_std_icon("DialogCloseButton"),
                                    tip="Quit application",
                                    triggered=self.close)
        add_actions(file_menu, (quit_action, ))
コード例 #39
0
ファイル: FTIR.py プロジェクト: BenMoon/LabSoft
    def __init__(self):
        QMainWindow.__init__(self)

        self.stage = None
        self.stopOsci = False
        self.stopMeasure = False
        
        self.setWindowTitle(APP_NAME)

        ###############
        # Osci live
        curveplot_toolbar = self.addToolBar(_("Curve Plotting Toolbar"))
        self.osciCurveWidget = DockablePlotWidget(self, CurveWidget,
                                              curveplot_toolbar)
        self.osciCurveWidget.calcFun.addFun('s', lambda x: x,
                                                 lambda x: x)
        self.osciCurveWidget.calcFun.addFun('ms', lambda x: x*1e3,
                                                  lambda x: x*1e-3)
        self.osciCurveWidget.calcFun.addFun('µs', lambda x: x*1e6,
                                                  lambda x: x*1e-6)
        osciPlot = self.osciCurveWidget.get_plot()
        #osciPlot.set_axis_title('bottom', 'Time (s)')
        #osciplot.add_item(make.legend("TR"))
        self.osciSignal = SignalFT(self, plot=osciPlot)
        self.osciSignal.addHCursor(0)
        self.osciSignal.addBounds()
        
        ##############
        # Time domain plot
        self.tdWidget = DockablePlotWidget(self, CurveWidget,
                                              curveplot_toolbar)
        self.tdWidget.calcFun.addFun('fs', lambda x: x,
                                           lambda x: x)
        self.tdWidget.calcFun.addFun('µm', lambda x: x*fsDelay*1e3,
                                           lambda x: x/fsDelay*1e-3)
        self.tdWidget.calcFun.addFun('mm', lambda x: x*fsDelay,
                                           lambda x: x/fsDelay)
        tdPlot = self.tdWidget.get_plot()
        #tdPlot.add_item(make.legend("TR"))
        self.tdSignal  = SignalFT(self, plot=tdPlot)
        self.tdSignal.addVCursor(0)

        ##################
        # Frequency domain plot
        self.fdWidget = DockablePlotWidget(self, CurveWidget,
                                              curveplot_toolbar)
        self.fdWidget.calcFun.addFun('PHz', lambda x: x,
                                            lambda x: x)
        self.fdWidget.calcFun.addFun('THz', lambda x: x*1e3,
                                            lambda x: x*1e-3)
        # x = PHz -> 1e15, µm = 1e-6
        self.fdWidget.calcFun.addFun('µm', lambda x: c0/x*1e-9,
                                           lambda x: c0/x*1e-9)
        self.fdWidget.calcFun.addFun('eV', lambda x: x,
                                           lambda x: x)
        fdplot = self.fdWidget.get_plot()
        #fqdplot.add_item(make.legend("TR"))
        self.fdSignal  = SignalFT(self, plot=fdplot)

        ##############
        # Main window widgets
        self.tabwidget = DockableTabWidget(self)
        #self.tabwidget.setMaximumWidth(500)
        self.tiepieUi = TiePieUi(self)
        self.piUi = PiStageUi(self)
        #self.stage = self.piUi.stage
        self.tabwidget.addTab(self.tiepieUi, QIcon('icons/Handyscope_HS4.png'),
                              _("Osci"))
        self.tabwidget.addTab(self.piUi, QIcon('icons/piController.png'),
                              _("Stage"))
        self.add_dockwidget(self.tabwidget, _("Inst. sett."))
#        self.setCentralWidget(self.tabwidget)
        self.osci_dock = self.add_dockwidget(self.osciCurveWidget,
                                              title=_("Osciloscope"))
        self.td_dock = self.add_dockwidget(self.tdWidget,
                                              title=_("Time Domain"))
        self.fd_dock = self.add_dockwidget(self.fdWidget,
                                              title=_("Frequency Domain"))

        ################
        # connect signals
        self.piUi.startScanBtn.released.connect(self.startMeasureThr)
        self.piUi.stopScanBtn.released.connect(self.stopMeasureThr)
        self.piUi.xAxeChanged.connect(self.tdSignal.updateXAxe)
        self.piUi.xAxeChanged.connect(self.fdSignal.updateXAxe)
        self.piUi.niceBtn.released.connect(self.showMakeNicerWidget)
        self.tiepieUi.scpConnected.connect(self.startOsciThr)
        self.tiepieUi.xAxeChanged.connect(self.osciSignal.updateXAxe)
        self.tiepieUi.yAxeChanged.connect(self.osciSignal.updateYAxe)
        self.tiepieUi.triggLevelChanged.connect(self.osciSignal.setHCursor)
        #self.piUi.centerBtn.released.connect(
        #    lambda x=None: self.piUi.setCenter(self.tdSignal.getVCursor()))
        self.tdSignal.plot.SIG_MARKER_CHANGED.connect(
            lambda x=None: self.piUi.newOffset(self.tdSignal.getVCursor()))

        self.osciCurveWidget.calcFun.idxChanged.connect(self.osciSignal.funChanged)
        self.tdWidget.calcFun.idxChanged.connect(self.tdSignal.funChanged)
        self.fdWidget.calcFun.idxChanged.connect(self.fdSignal.funChanged)

        self.updateOsciPlot.connect(self.osciSignal.updatePlot)
        self.updateTdPlot.connect(self.tdSignal.updatePlot)
        self.updateFdPlot.connect(lambda data:
            self.fdSignal.updatePlot(self.fdSignal.computeFFT(data)))
        
        ################
        # create threads
        #self.osciThr = GenericThread(self.getOsciData)
        self.osciThr = QThread()
        self.osciThr.start()
        self.osciWorker = GenericWorker(self.getOsciData)
        self.osciWorker.moveToThread(self.osciThr)
        
        #self.measureThr = GenericThread(self.getMeasureData)
        self.measureThr = QThread()
        self.measureThr.start()
        self.measureWorker = GenericWorker(self.getMeasureData)
        self.measureWorker.moveToThread(self.measureThr)        
        
        ################
        # File menu
        file_menu = self.menuBar().addMenu(_("File"))
        self.quit_action = create_action(self, _("Quit"), shortcut="Ctrl+Q",
                                    icon=get_std_icon("DialogCloseButton"),
                                    tip=_("Quit application"),
                                    triggered=self.close)
        saveData = create_action(self, _("Save"), shortcut="Ctrl+S",
                                    icon=get_std_icon("DialogSaveButton"),
                                    tip=_("Save data"),
                                    triggered=self.saveData)
        triggerTest_action = create_action(self, _("Stop Osci"),
                                    shortcut="Ctrl+O",
                                    icon=get_icon('fileopen.png'),
                                    tip=_("Open an image"),
                                    triggered=self.stopOsciThr)
        add_actions(file_menu, (triggerTest_action, saveData, None, self.quit_action))
        
        ##############
        # Eventually add an internal console (requires 'spyderlib')
        self.sift_proxy = SiftProxy(self)
        if DockableConsole is None:
            self.console = None
        else:
            import time, scipy.signal as sps, scipy.ndimage as spi
            ns = {'ftir': self.sift_proxy,
                  'np': np, 'sps': sps, 'spi': spi,
                  'os': os, 'sys': sys, 'osp': osp, 'time': time}
            msg = "Example: ftir.s[0] returns signal object #0\n"\
                  "Modules imported at startup: "\
                  "os, sys, os.path as osp, time, "\
                  "numpy as np, scipy.signal as sps, scipy.ndimage as spi"
            self.console = DockableConsole(self, namespace=ns, message=msg)
            self.add_dockwidget(self.console, _("Console"))
            '''
            try:
                self.console.interpreter.widget_proxy.sig_new_prompt.connect(
                                            lambda txt: self.refresh_lists())
            except AttributeError:
                print('sift: spyderlib is outdated', file=sys.stderr)
            '''

        # Show main window and raise the signal plot panel
        self.show()
コード例 #40
0
ファイル: gui.py プロジェクト: zanppa/motor-sim
    def __init__(self):
        QMainWindow.__init__(self)
        self.setWindowIcon(get_icon('python.png'))
        self.setWindowTitle("Electric motor simulator")

        # Dataset for editing motor parameters
        self.groupbox1 = DataSetShowGroupBox("Motor parameters",
                                             ExampleDataSet,
                                             comment='')
        self.groupbox2 = DataSetShowGroupBox("Controller parameters",
                                             AnotherDataSet,
                                             comment='')
        self.groupbox3 = DataSetEditGroupBox("Standard dataset",
                                             OtherDataSet,
                                             comment='')
        self.groupbox4 = DataSetEditGroupBox("Standard dataset",
                                             ExampleMultiGroupDataSet,
                                             comment='')
        #self.groupbox3.SIG_APPLY_BUTTON_CLICKED.connect(self.update_window)
        self.update_groupboxes()

        splitter = QSplitter(self)
        splitter.addWidget(self.groupbox1)
        splitter.addWidget(self.groupbox2)
        #splitter.addWidget(self.groupbox3)
        #splitter.addWidget(self.groupbox4)
        self.setCentralWidget(splitter)
        self.setContentsMargins(10, 5, 10, 5)

        # File menu
        file_menu = self.menuBar().addMenu("File")
        quit_action = create_action(self,
                                    "Quit",
                                    shortcut="Ctrl+Q",
                                    icon=get_std_icon("DialogCloseButton"),
                                    tip="Quit application",
                                    triggered=self.close)
        add_actions(file_menu, (quit_action, ))

        # Edit menu
        edit_menu = self.menuBar().addMenu("Edit")
        editparam1_action = create_action(self,
                                          "Edit dataset 1",
                                          triggered=self.edit_dataset1)
        editparam2_action = create_action(self,
                                          "Edit dataset 2",
                                          triggered=self.edit_dataset2)
        editparam4_action = create_action(self,
                                          "Edit dataset 4",
                                          triggered=self.edit_dataset4)
        add_actions(edit_menu,
                    (editparam1_action, editparam2_action, editparam4_action))

        # Toolbar
        tb = self.addToolBar("Tools")
        reset = QAction("Reset", self)
        tb.addAction(reset)
        pause = QAction("Pause", self)
        tb.addAction(pause)
        step = QAction("Step", self)
        tb.addAction(step)
        go = QAction("Go", self)
        tb.addAction(go)
コード例 #41
0
    def setup(self, start_freq, bandwidth, numpts, max_hold):
        """Setup window parameters"""
        self.setWindowIcon(get_icon('python.png'))
        self.setWindowTitle(APP_NAME + ' ' + VERS + ' Running on ' + self.dev)
        dt = QDesktopWidget()
        print dt.numScreens(), dt.screenGeometry()
        sz = dt.screenGeometry()

        self.resize(QSize(sz.width() * 9 / 10, sz.height() * 9 / 10))

        # Welcome message in statusbar:
        status = self.statusBar()
        status.showMessage(_("Welcome to the NetworkAnalyser application!"),
                           5000)

        # File menu
        file_menu = self.menuBar().addMenu(_("File"))

        open_action = create_action(self,
                                    _("Save"),
                                    shortcut="Ctrl+S",
                                    icon=get_std_icon("DialogSaveButton"),
                                    tip=_("Save a Cal File"),
                                    triggered=self.saveFileDialog)

        load_action = create_action(self,
                                    _("Load"),
                                    shortcut="Ctrl+L",
                                    icon=get_std_icon("FileIcon"),
                                    tip=_("Load a cal File"),
                                    triggered=self.loadFileDialog)

        quit_action = create_action(self,
                                    _("Quit"),
                                    shortcut="Ctrl+Q",
                                    icon=get_std_icon("DialogCloseButton"),
                                    tip=_("Quit application"),
                                    triggered=self.close)
        add_actions(file_menu, (open_action, load_action, None, quit_action))

        # Help menu - prolly should just say "you're on your own..."!!
        help_menu = self.menuBar().addMenu("Help")
        about_action = create_action(
            self,
            _("About..."),
            icon=get_std_icon('MessageBoxInformation'),
            triggered=self.about)
        add_actions(help_menu, (about_action, ))

        main_toolbar = self.addToolBar("Main")
        # add_actions(main_toolbar, (new_action, open_action, ))

        rescan_action = create_action(
            self,
            _("Rescan"),
            shortcut="Ctrl+R",
            icon=get_std_icon("BrowserReload"),
            tip=_("Rescan the current frequency selection"),
            checkable=False,
            triggered=self.do_scan)

        max_hold_action = create_action(
            self,
            _("Max Hold"),
            shortcut="Ctrl+M",
            icon=get_std_icon("ArrowUp"),
            tip=_("Display the maximum value encountered"),
            checkable=True,
            triggered=self.do_max_hold)

        log_lin_action = create_action(self,
                                       _("Log/Lin"),
                                       shortcut="Ctrl+L",
                                       icon=get_std_icon("ArrowRight"),
                                       tip=_("Use linear power receive mode"),
                                       checkable=True,
                                       triggered=self.do_log_lin)

        new_plot_action = create_action(self,
                                        _("New Plot"),
                                        shortcut="Ctrl+N",
                                        icon=get_std_icon("ArrowLeft"),
                                        tip=_("Creates a new labeled plot"),
                                        checkable=False,
                                        triggered=self.do_new_plot)

        if max_hold is None:
            max_hold = self.settings.value('gui/max_hold', False)
            print 'Got max_hold', max_hold
            if type(max_hold) != bool:
                if max_hold in ['y', 'Y', 'T', 'True', 'true', '1']:
                    max_hold = True
                else:
                    max_hold = False
        max_hold_action.setChecked(max_hold)

        # Calibration action?
        add_actions(main_toolbar,
                    (open_action, load_action, rescan_action, max_hold_action,
                     log_lin_action, new_plot_action))

        # Set central widget:

        toolbar = self.addToolBar("Image")
        self.mainwidget = CentralWidget(self, self.settings, toolbar,
                                        start_freq, bandwidth, numpts,
                                        self.dev)
        self.setCentralWidget(self.mainwidget)

        if max_hold:
            self.do_max_hold()
コード例 #42
0
    def _create_curve_window(self, item):
        window = ThothCurveWindow(wintitle=item.measurement.param.filename,
                                  icon="curve.png",
                                  toolbar=True)
        compute_menu = window.menuBar().addMenu(_("&Compute"))
        compute_actions = []
        compute_actions.append(
            create_action(self,
                          _("Scale"),
                          triggered=item.compute_scale,
                          tip=_("Scale the curve.")))
        compute_actions.append(
            create_action(self,
                          _("Shift"),
                          triggered=item.compute_shift,
                          tip=_("Shift the curve")))
        compute_actions.append(
            create_action(
                self,
                _("&Derivative"),
                triggered=item.compute_derivative,
                tip=_("Compute point wise derivative of the curve.")))
        compute_actions.append(
            create_action(self,
                          _("&Spline derivative"),
                          triggered=item.compute_spline_derivative,
                          tip=_("""Compute the first derivative with spline
interpolation.""")))
        compute_actions.append(
            create_action(self,
                          _("&Fourier transform"),
                          triggered=item.compute_fft,
                          tip=_("Compute the Fourier transfom of the curve.")))
        compute_actions.append(
            create_action(
                self,
                _("&Inverse Fourier transfom"),
                triggered=item.compute_ifft,
                tip=_("Compute the inverse Fourier transfom of the curve.")))
        compute_actions.append(
            create_action(self,
                          _("&Apply Wiener filter"),
                          triggered=item.compute_wiener,
                          tip=_("Smooth the curve with a Wiener filter.")))
        compute_actions.append(
            create_action(self,
                          _("&Apply Gauss filter"),
                          triggered=item.compute_gaussian,
                          tip=_("Smooth the curve with a Gaussian filter.")))
        compute_actions.append(
            create_action(
                self,
                _("&Apply Savitzky-Golay"),
                triggered=item.compute_savitzky,
                tip=
                _("Compute a smoothig or a derivative of the curve according to Savitzky-Golay algorithm."
                  )))
        compute_actions.append(
            create_action(self, _("Fit BCS"), triggered=item.fit_bcs))
        add_actions(compute_menu, compute_actions)
        plot = window.get_plot()
        plot.set_antialiasing(True)
        t = item.measurement.param.type
        if 'ivcurve' == t:
            xlabel = _('Voltage')
            ylabel = _('Current')
        elif 'didvcurve' == t:
            xlabel = _('Energy')
            ylabel = _('Density of state')
        else:
            xlabel = _('Unknown')
            ylabel = _('Unknown')
        xunit = item.measurement.param.axis1.unit
        yunit = item.measurement.param.unit
        plot.set_titles(title=None,
                        xlabel=xlabel,
                        ylabel=ylabel,
                        xunit=xunit,
                        yunit=yunit)
        plot.add_item(item)
        return window
コード例 #43
0
ファイル: dw_gui.py プロジェクト: dishwasher-rfi/dw
    def set_menu(self):
        """Build the menu"""

        file_menu = self.menuBar().addMenu(_("File"))
        open_action = create_action(self,
                                    _("Open file..."),
                                    shortcut="Ctrl+O",
                                    icon=get_icon('fileopen.png'),
                                    tip=_("Open a data file"),
                                    triggered=self.open_file)
        close_action = create_action(self,
                                     _("Close..."),
                                     shortcut="Ctrl+C",
                                     icon=get_icon('fileclose.png'),
                                     tip=_("Close a data file"),
                                     triggered=self.close_file)
        quit_action = create_action(self,
                                    _("Quit"),
                                    shortcut="Ctrl+Q",
                                    icon=get_std_icon("DialogCloseButton"),
                                    tip=_("Quit application"),
                                    triggered=self.close_dw)
        add_actions(file_menu,
                    (open_action, None, close_action, None, quit_action))

        #Tools menu
        Tool_menu = self.menuBar().addMenu(_("Tools"))
        #        RFI1_action = create_action(self, _("RFI flag algorithm 1"),
        #                                    shortcut="Ctrl+1",
        #                                    icon=get_icon(''),
        #                                    tip=_("Detect RFI - alg 1"),
        #                                    triggered=self.not_implemented)
        Ipython_action = create_action(self,
                                       _("Ipython console"),
                                       shortcut="Ctrl+I",
                                       icon=get_icon('python.png'),
                                       tip=_("Launch Ipython console"),
                                       triggered=self.embed_ipython)
        bpc_action = create_action(
            self,
            _("Band pass correction tool"),
            shortcut="Ctrl+B",
            icon=get_icon('sticks.png'),
            tip=("Launch the tool for the band pass correction"),
            triggered=self.bpcexec)
        bpc_open_file = create_action(
            self,
            _("Open a correction file"),
            shortcut="Ctrl+N",
            icon=get_icon('fileopen.png'),
            tip=("Open a file generated by the bandpass correction tool"),
            triggered=self.open_corr_file)
        bpc_toggle = create_action(self,
                                   _("Apply/Unapply correction"),
                                   shortcut="Ctrl+M",
                                   icon=get_icon('fileimport.png'),
                                   tip=("Toggle use of correction on data"),
                                   triggered=self.toggle_corr)
        freq_off_action = create_action(self,
                                        _("Set freq scale offset"),
                                        shortcut="Ctrl+0",
                                        icon=get_icon('vcursor.png'),
                                        tip=_("Set freq scale offset"),
                                        triggered=self.freq_off)
        mir_x_action = create_action(self,
                                     _("Mirror x axis"),
                                     shortcut="Ctrl+X",
                                     icon=get_icon('axes.png'),
                                     tip=_("Mirror x axis"),
                                     triggered=self.mir_x)
        #rplot_time_action = create_action(self, _("Recurrence plot (time)"),
        #                            icon=get_icon(''),
        #                            tip=_("Recurrence plot widget"),
        #                            triggered=self.rplot_widget_time)
        #rplot_freqs_action = create_action(self, _("Recurrence plot (frequencies)"),
        #                            icon=get_icon(''),
        #                            tip=_("Recurrence plot widget"),
        #                            triggered=self.rplot_widget_freqs)

        add_actions(
            Tool_menu,
            (None, Ipython_action, None, bpc_action, bpc_open_file, bpc_toggle)
        )  #, None, freq_off_action, mir_x_action))#, None, rplot_time_action, rplot_freqs_action))

        #RFI flag menu
        flag_menu = self.menuBar().addMenu(_("Flagging"))
        self.flag_action = create_action(self,
                                         _("Flag..."),
                                         shortcut="Ctrl+F",
                                         icon=get_icon(self.icon_path +
                                                       'flag_ok.png'),
                                         tip=_("Flag..."),
                                         triggered=self.checked_items_to_flag)

        self.deflag_isect_action = create_action(
            self,
            _("Deflag intersected"),
            shortcut="Ctrl+G",
            icon=get_icon(self.icon_path + 'flag_sel_del.png'),
            tip=_("Remove flags intersected by element"),
            triggered=self.deflag_intersected)

        deflag_action = create_action(
            self,
            _("Deflag..."),
            shortcut="Ctrl+Shift+F",
            #                                    icon=get_icon('fileopen.png'),
            tip=_("Deflag..."),
            triggered=self.deflag_selected_flag_image_items)

        merge_flag_action = create_action(
            self,
            _("Merge selected"),
            #                                    shortcut="Ctrl+F",
            #                                    icon=get_icon('fileopen.png'),
            tip=_("Flag..."),
            triggered=self.merge_selected_flag_image_items)

        del_flag_action = create_action(
            self,
            _("Delete selected"),
            #                                    shortcut="Ctrl+F",
            icon=get_icon(self.icon_path + 'flag_del.png'),
            tip=_("Delete selected flagging matrices"),
            triggered=self.del_selected_flag_image_item)

        flag_widget_action = create_action(self,
                                           _("Manual Flag Widget"),
                                           icon=get_icon(self.icon_path +
                                                         'flag.png'),
                                           tip=_("Open a flagging widget"),
                                           triggered=self.flag_widget)

        propag_flag_action = create_action(
            self,
            _("Propagate flag table to files"),
            icon=get_icon(self.icon_path + 'flag_copy.png'),
            tip=("Propagate the file table to other files"),
            triggered=self.propag_flag_table)

        propag_feeds_action = create_action(
            self,
            _("Propagate flag feed -> feed"),
            icon=get_icon(self.icon_path + 'flag_copy.png'),
            tip=("Propagate a flag feed to feed"),
            triggered=self.propag_feeds)

        auto_flag_action = create_action(self,
                                         _("Auto RFI detection"),
                                         tip=_("Run auto RFI detection"),
                                         triggered=self.rfi_dect_action)

        add_actions(
            flag_menu,
            (
                self.flag_action,
                self.deflag_isect_action,
                #                                deflag_action, merge_flag_action,
                del_flag_action,
                flag_widget_action,
                None,
                propag_flag_action,
                propag_feeds_action,
                None,
                auto_flag_action))

        # Help menu
        help_menu = self.menuBar().addMenu("?")
        about_action = create_action(
            self,
            _("About..."),
            icon=get_std_icon('MessageBoxInformation'),
            triggered=self.about)
        add_actions(help_menu, (about_action, ))

        main_toolbar = self.addToolBar("Main")

        add_actions(main_toolbar, (open_action, ))
コード例 #44
0
ファイル: SW_estimation.py プロジェクト: xi2pi/SW_estimation
    def __init__(self):
        QMainWindow.__init__(self)
        self.setWindowIcon(get_icon('python.png'))
        self.setWindowTitle("Stroke Work Estimation")

        pal = QtGui.QPalette()
        role = QtGui.QPalette.Background
        pal.setColor(role, QtGui.QColor(255, 255, 255))
        self.setPalette(pal)

        self.textEdit = QtGui.QLabel('None')

        self.loadButton = QtGui.QPushButton("Compute")
        self.loadButton.clicked.connect(self.on_click)
        self.buttonSave = QtGui.QPushButton('Clear Plot', self)
        self.buttonSave.clicked.connect(self.clearPlots)

        self.dropDownMenu = QtGui.QComboBox()
        self.dropDownMenu.addItems(
            ["Vao", "Vvc", "Vpa", "Vpu", "Vlv", "Vrv", "all"])

        self.table1 = QtGui.QTableWidget()
        self.table2 = QtGui.QTableWidget()

        self.fileName = ''
        self.lastClicked = []
        self.number_plots = 0

        self.pw1 = PG.PlotWidget(name='VTC')
        self.pw1.setLabel('left', 'Pressure', units='mmHg')
        self.pw1.setLabel('bottom', 'Volume', units='mL')
        self.pw1.setBackground((255, 255, 255))

        self.pw2 = PG.PlotWidget(name='VTC')
        self.pw2.setBackground((255, 255, 255))
        self.pw2.setLabel('left', 'Pressure', units='mmHg')
        self.pw2.setLabel('bottom', 'Time', units='s')

        self.pw3 = PG.PlotWidget(name='PV')
        self.pw3.setBackground((255, 255, 255))
        self.pw3.setLabel('left', 'Pressure', units='mmHg')
        self.pw3.setLabel('bottom', 'Volume', units='ml')

        #horizontalLayout = QtGui.QHBoxLayout(self)
        splitter = QSplitter(QtCore.Qt.Vertical)
        splitter2 = QSplitter(QtCore.Qt.Vertical)
        splitterH = QSplitter(QtCore.Qt.Horizontal)

        #splitter.addWidget(self.dropDownMenu)
        splitter.addWidget(self.loadButton)
        splitter.addWidget(self.pw1)
        splitter.addWidget(self.pw2)
        #        splitter.addWidget(self.pw3)

        splitter2.addWidget(self.table1)
        splitter2.addWidget(self.table2)
        splitter2.addWidget(self.buttonSave)

        splitterH.addWidget(splitter)
        splitterH.addWidget(splitter2)

        self.table1.setRowCount(9)
        self.table1.setColumnCount(2)

        self.table2.setRowCount(11)
        self.table2.setColumnCount(2)

        self.table1.setItem(0, 0, QtGui.QTableWidgetItem("Eao"))
        self.table1.setItem(0, 1, QtGui.QTableWidgetItem("1.0"))
        self.table1.setItem(1, 0, QtGui.QTableWidgetItem("Evc"))
        self.table1.setItem(1, 1, QtGui.QTableWidgetItem("1.0"))
        self.table1.setItem(2, 0, QtGui.QTableWidgetItem("Rmt"))
        self.table1.setItem(2, 1, QtGui.QTableWidgetItem("0.1"))
        self.table1.setItem(3, 0, QtGui.QTableWidgetItem("Rao"))
        self.table1.setItem(3, 1, QtGui.QTableWidgetItem("0.1"))

        self.table1.setItem(5, 0, QtGui.QTableWidgetItem("P max"))
        self.table1.setItem(5, 1, QtGui.QTableWidgetItem("100"))
        self.table1.setItem(6, 0, QtGui.QTableWidgetItem("V max"))
        self.table1.setItem(6, 1, QtGui.QTableWidgetItem("100"))
        self.table1.setItem(7, 0, QtGui.QTableWidgetItem("V min"))
        self.table1.setItem(7, 1, QtGui.QTableWidgetItem("70"))
        self.table1.setItem(8, 0, QtGui.QTableWidgetItem("T"))
        self.table1.setItem(8, 1, QtGui.QTableWidgetItem("0.5"))

        ####
        self.table2.setItem(0, 0, QtGui.QTableWidgetItem("SW 1"))
        self.table2.setItem(0, 1, QtGui.QTableWidgetItem("-"))
        self.table2.setItem(1, 0, QtGui.QTableWidgetItem("SW 2"))
        self.table2.setItem(1, 1, QtGui.QTableWidgetItem("-"))
        self.table2.setItem(2, 0, QtGui.QTableWidgetItem("SW 3"))
        self.table2.setItem(2, 1, QtGui.QTableWidgetItem("-"))

        self.table2.setItem(4, 0, QtGui.QTableWidgetItem("Elv"))
        self.table2.setItem(4, 1, QtGui.QTableWidgetItem("-"))
        self.table2.setItem(5, 0, QtGui.QTableWidgetItem("Rsys"))
        self.table2.setItem(5, 1, QtGui.QTableWidgetItem("-"))
        self.table2.setItem(6, 0, QtGui.QTableWidgetItem("SBV"))
        self.table2.setItem(6, 1, QtGui.QTableWidgetItem("-"))

        self.table2.setItem(8, 0, QtGui.QTableWidgetItem("error"))
        self.table2.setItem(8, 1, QtGui.QTableWidgetItem("-"))

        self.setCentralWidget(splitterH)

        self.setContentsMargins(10, 5, 10, 5)
        self.setGeometry(100, 100, 1000, 800)

        # File menu
        file_menu = self.menuBar().addMenu("File")
        quit_action = create_action(self,
                                    "Quit",
                                    shortcut="Ctrl+Q",
                                    icon=get_std_icon("DialogCloseButton"),
                                    tip="Quit application",
                                    triggered=self.close)
        add_actions(file_menu, (quit_action, ))