Exemplo n.º 1
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")
Exemplo n.º 2
0
    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)
Exemplo n.º 3
0
    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()
Exemplo n.º 4
0
    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)  
Exemplo n.º 5
0
    def __init__(self, parent):
        QWidget.__init__(self, parent)
        font = QFont(get_family(MONOSPACE), 10, QFont.Normal)

        info_icon = QLabel()
        icon = get_std_icon("MessageBoxInformation").pixmap(24, 24)
        info_icon.setPixmap(icon)
        info_icon.setFixedWidth(32)
        info_icon.setAlignment(Qt.AlignTop)

        self.service_status_label = QLabel()
        self.service_status_label.setWordWrap(True)
        self.service_status_label.setAlignment(Qt.AlignTop)
        self.service_status_label.setFont(font)

        self.desc_label = QLabel()
        self.desc_label.setWordWrap(True)
        self.desc_label.setAlignment(Qt.AlignTop)
        self.desc_label.setFont(font)

        self.group_desc = QGroupBox("Description", self)
        layout = QHBoxLayout()
        layout.addWidget(info_icon)
        layout.addWidget(self.desc_label)
        layout.addStretch()
        layout.addWidget(self.service_status_label)

        self.group_desc.setLayout(layout)

        self.editor = CodeEditor(self)
        self.editor.setup_editor(linenumbers=True, font=font)
        self.editor.setReadOnly(False)
        self.group_code = QGroupBox("Source code", self)
        layout = QVBoxLayout()
        layout.addWidget(self.editor)
        self.group_code.setLayout(layout)

        self.enable_button = QPushButton(get_icon("apply.png"), "Enable", self)

        self.save_button = QPushButton(get_icon("filesave.png"), "Save", self)

        self.disable_button = QPushButton(get_icon("delete.png"), "Disable", self)

        self.refresh_button = QPushButton(get_icon("restart.png"), "Refresh", self)
        hlayout = QHBoxLayout()
        hlayout.addWidget(self.save_button)
        hlayout.addWidget(self.enable_button)
        hlayout.addWidget(self.disable_button)
        hlayout.addWidget(self.refresh_button)

        vlayout = QVBoxLayout()
        vlayout.addWidget(self.group_desc)
        vlayout.addWidget(self.group_code)
        self.html_window = HTMLWindow()
        vlayout.addWidget(self.html_window)

        vlayout.addLayout(hlayout)
        self.setLayout(vlayout)

        self.current_file = None
Exemplo n.º 6
0
    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 )
Exemplo n.º 7
0
 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)
Exemplo n.º 8
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))
Exemplo n.º 9
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)
Exemplo n.º 10
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.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))
Exemplo n.º 11
0
	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)
Exemplo n.º 12
0
 def __init__(self, parent):
     QWidget.__init__(self, parent)
     font = QFont(get_family(MONOSPACE), 10, QFont.Normal)
     
     info_icon = QLabel()
     icon = get_std_icon('MessageBoxInformation').pixmap(24, 24)
     info_icon.setPixmap(icon)
     info_icon.setFixedWidth(32)
     info_icon.setAlignment(Qt.AlignTop)
     self.desc_label = QLabel()
     self.desc_label.setWordWrap(True)
     self.desc_label.setAlignment(Qt.AlignTop)
     self.desc_label.setFont(font)
     group_desc = QGroupBox(_("Description"), self)
     layout = QHBoxLayout()
     layout.addWidget(info_icon)
     layout.addWidget(self.desc_label)
     group_desc.setLayout(layout)
     
     self.editor = CodeEditor(self)
     self.editor.setup_editor(linenumbers=True, font=font)
     self.editor.setReadOnly(True)
     group_code = QGroupBox(_("Source code"), self)
     layout = QVBoxLayout()
     layout.addWidget(self.editor)
     group_code.setLayout(layout)
     
     self.run_button = QPushButton(get_icon("apply.png"),
                                   _("Run this script"), self)
     self.quit_button = QPushButton(get_icon("exit.png"), _("Quit"), self)
     hlayout = QHBoxLayout()
     hlayout.addWidget(self.run_button)
     hlayout.addStretch()
     hlayout.addWidget(self.quit_button)
     
     vlayout = QVBoxLayout()
     vlayout.addWidget(group_desc)
     vlayout.addWidget(group_code)
     vlayout.addLayout(hlayout)
     self.setLayout(vlayout)
Exemplo n.º 13
0
    def __init__(self, parent):
        QWidget.__init__(self, parent)
        font = QFont(get_family(MONOSPACE), 10, QFont.Normal)

        info_icon = QLabel()
        icon = get_std_icon('MessageBoxInformation').pixmap(24, 24)
        info_icon.setPixmap(icon)
        info_icon.setFixedWidth(32)
        info_icon.setAlignment(Qt.AlignTop)
        self.desc_label = QLabel()
        self.desc_label.setWordWrap(True)
        self.desc_label.setAlignment(Qt.AlignTop)
        self.desc_label.setFont(font)
        group_desc = QGroupBox(_("Description"), self)
        layout = QHBoxLayout()
        layout.addWidget(info_icon)
        layout.addWidget(self.desc_label)
        group_desc.setLayout(layout)

        self.editor = CodeEditor(self)
        self.editor.setup_editor(linenumbers=True, font=font)
        self.editor.setReadOnly(True)
        group_code = QGroupBox(_("Source code"), self)
        layout = QVBoxLayout()
        layout.addWidget(self.editor)
        group_code.setLayout(layout)

        self.run_button = QPushButton(get_icon("apply.png"),
                                      _("Run this script"), self)
        self.quit_button = QPushButton(get_icon("exit.png"), _("Quit"), self)
        hlayout = QHBoxLayout()
        hlayout.addWidget(self.run_button)
        hlayout.addStretch()
        hlayout.addWidget(self.quit_button)

        vlayout = QVBoxLayout()
        vlayout.addWidget(group_desc)
        vlayout.addWidget(group_code)
        vlayout.addLayout(hlayout)
        self.setLayout(vlayout)
Exemplo n.º 14
0
    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)
Exemplo n.º 15
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))
Exemplo n.º 16
0
    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, ))
Exemplo n.º 17
0
    def __init__(self, parent):
        QWidget.__init__(self, parent)
        font = QFont(get_family(MONOSPACE), 10, QFont.Normal)

        info_icon = QLabel()
        icon = get_std_icon('MessageBoxInformation').pixmap(24, 24)
        info_icon.setPixmap(icon)
        info_icon.setFixedWidth(32)
        info_icon.setAlignment(Qt.AlignTop)

        self.service_status_label = QLabel()
        self.service_status_label.setWordWrap(True)
        self.service_status_label.setAlignment(Qt.AlignTop)
        self.service_status_label.setFont(font)

        self.desc_label = QLabel()
        self.desc_label.setWordWrap(True)
        self.desc_label.setAlignment(Qt.AlignTop)
        self.desc_label.setFont(font)

        self.group_desc = QGroupBox("Description", self)
        layout = QHBoxLayout()
        layout.addWidget(info_icon)
        layout.addWidget(self.desc_label)
        layout.addStretch()
        layout.addWidget(self.service_status_label)

        self.group_desc.setLayout(layout)

        self.editor = CodeEditor(self)
        self.editor.setup_editor(linenumbers=True, font=font)
        self.editor.setReadOnly(False)
        self.group_code = QGroupBox("Source code", self)
        layout = QVBoxLayout()
        layout.addWidget(self.editor)
        self.group_code.setLayout(layout)

        self.enable_button = QPushButton(get_icon("apply.png"), "Enable", self)

        self.save_button = QPushButton(get_icon("filesave.png"), "Save", self)

        self.disable_button = QPushButton(get_icon("delete.png"), "Disable",
                                          self)

        self.refresh_button = QPushButton(get_icon("restart.png"), "Refresh",
                                          self)
        hlayout = QHBoxLayout()
        hlayout.addWidget(self.save_button)
        hlayout.addWidget(self.enable_button)
        hlayout.addWidget(self.disable_button)
        hlayout.addWidget(self.refresh_button)

        vlayout = QVBoxLayout()
        vlayout.addWidget(self.group_desc)
        vlayout.addWidget(self.group_code)
        self.html_window = HTMLWindow()
        vlayout.addWidget(self.html_window)

        vlayout.addLayout(hlayout)
        self.setLayout(vlayout)

        self.current_file = None
Exemplo n.º 18
0
    def __init__(self, parent):
        QWidget.__init__(self, parent)
        font = QFont(get_family(MONOSPACE), 10, QFont.Normal)
        
        info_icon = QLabel()
        icon = get_std_icon('MessageBoxInformation').pixmap(24, 24)
        info_icon.setPixmap(icon)
        info_icon.setFixedWidth(32)
        info_icon.setAlignment(Qt.AlignTop)

        self.service_status_label = QLabel()
        self.service_status_label.setWordWrap(True)
        self.service_status_label.setAlignment(Qt.AlignTop)
        self.service_status_label.setFont(font)

        self.desc_label = QLabel()
        self.desc_label.setWordWrap(True)
        self.desc_label.setAlignment(Qt.AlignTop)
        self.desc_label.setFont(font)

        group_desc = QGroupBox("Description", self)
        layout = QHBoxLayout()
        layout.addWidget(info_icon)
        layout.addWidget(self.desc_label)
        layout.addStretch()
        layout.addWidget(self.service_status_label  )

        group_desc.setLayout(layout)
        
        self.editor = CodeEditor(self)
        self.editor.setup_editor(linenumbers=True, font=font)
        self.editor.setReadOnly(False)
        group_code = QGroupBox("Source code", self)
        layout = QVBoxLayout()
        layout.addWidget(self.editor)
        group_code.setLayout(layout)
        
        self.enable_button = QPushButton(get_icon("apply.png"),
                                      "Enable", self)

        self.save_button = QPushButton(get_icon("filesave.png"),
                                      "Save", self)

        self.edit_datadog_conf_button = QPushButton(get_icon("edit.png"),
                                      "Edit agent settings", self)

        self.disable_button = QPushButton(get_icon("delete.png"),
                                      "Disable", self)


        self.view_log_button = QPushButton(get_icon("txt.png"), 
                                      "View log", self)

        self.menu_button = QPushButton(get_icon("settings.png"),
                                      "Manager", self)



        hlayout = QHBoxLayout()
        hlayout.addWidget(self.save_button)
        hlayout.addStretch()
        hlayout.addWidget(self.enable_button)
        hlayout.addStretch()
        hlayout.addWidget(self.disable_button)
        hlayout.addStretch()
        hlayout.addWidget(self.edit_datadog_conf_button)
        hlayout.addStretch()
        hlayout.addWidget(self.view_log_button)
        hlayout.addStretch()
        hlayout.addWidget(self.menu_button)
        
        vlayout = QVBoxLayout()
        vlayout.addWidget(group_desc)
        vlayout.addWidget(group_code)
        vlayout.addLayout(hlayout)
        self.setLayout(vlayout)

        self.current_file = None
Exemplo n.º 19
0
    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()
Exemplo n.º 20
0
    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, ))
Exemplo n.º 21
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()
Exemplo n.º 22
0
 def __init__(self, item, parent_layout):
     super(DirectoryWidget, self).__init__(item, parent_layout)
     button = QPushButton()
     button.setIcon(get_std_icon('DirOpenIcon'))
     button.clicked.connect(self.select_directory)
     self.group.addWidget(button)
Exemplo n.º 23
0
    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()
Exemplo n.º 24
0
 def __init__(self, manager, toolbar_id=DefaultToolbarID):
     super(HelpTool,self).__init__(manager, "Help",
         get_std_icon("DialogHelpButton", 16),
         toolbar_id=toolbar_id)
Exemplo n.º 25
0
 def __init__(self, manager, toolbar_id=DefaultToolbarID):
     super(HelpTool, self).__init__(manager,
                                    "Help",
                                    get_std_icon("DialogHelpButton", 16),
                                    toolbar_id=toolbar_id)
Exemplo n.º 26
0
    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, ))
Exemplo n.º 27
0
    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)