示例#1
0
class Ui_Plots(object):
    def setupUi(self, MainWindow2):
        MainWindow2.setObjectName("MainWindow2")
        #MainWindow2.setGeometry(100, 100, 890, 750)
        #MainWindow2.setFixedSize(1091, 770)
        #MainWindow2.resize(1091, 770)
        MainWindow2.setMinimumSize(QtCore.QSize(705, 518))
        MainWindow2.setStyleSheet("")
        MainWindow2.setTabShape(QtWidgets.QTabWidget.Rounded)
        self.centralwidget = QtWidgets.QWidget(MainWindow2)
        self.centralwidget.setObjectName("centralwidget")
        self.gridLayout = QtWidgets.QGridLayout(self.centralwidget)
        self.gridLayout.setObjectName("gridLayout")
        self.Layout_graphs = QtWidgets.QGridLayout()
        self.Layout_graphs.setObjectName("Layout_graphs")

        self.plt = GraphicsLayoutWidget(self.centralwidget)
        self.pltB = GraphicsLayoutWidget(self.centralwidget)

        self.plt.setAutoFillBackground(False)
        self.plt.setStyleSheet("border: 0px;")
        self.plt.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.plt.setFrameShadow(QtWidgets.QFrame.Plain)
        self.plt.setLineWidth(0)
        self.plt.setObjectName("plt")

        self.pltB.setAutoFillBackground(False)
        self.pltB.setStyleSheet("border: 0px;")
        self.pltB.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.pltB.setFrameShadow(QtWidgets.QFrame.Plain)
        self.pltB.setLineWidth(0)
        self.pltB.setObjectName("pltB")

        self.label = QtWidgets.QLabel()
        self.Layout_graphs.addWidget(self.label, 0, 0, 1, 1)

        def link1(linkStr):
            QtGui.QDesktopServices.openUrl(QtCore.QUrl(linkStr))

        self.label.linkActivated.connect(link1)
        self.label.setText(
            '<a href="https://openqcm.com/"> <font color=#000000 >Open-source Python application for displaying, processing and storing real-time data from openQCM Q-1 Device</font> </a>'
        )

        self.Layout_graphs.addWidget(self.plt, 1, 0, 1, 1)
        self.Layout_graphs.addWidget(self.pltB, 2, 0, 1, 1)

        self.gridLayout.addLayout(self.Layout_graphs, 3, 1, 1, 1)
        MainWindow2.setCentralWidget(self.centralwidget)

        self.retranslateUi(MainWindow2)
        QtCore.QMetaObject.connectSlotsByName(MainWindow2)

    def retranslateUi(self, MainWindow2):
        _translate = QtCore.QCoreApplication.translate
        MainWindow2.setWindowIcon(QtGui.QIcon('favicon.ico'))  #.png
        MainWindow2.setWindowTitle(
            _translate("MainWindow2", "OPENQCM Q-1 - Real-Time Plot GUI 2.1"))
示例#2
0
class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(1600, 931)
        MainWindow.setAutoFillBackground(True)
        MainWindow.setStyleSheet("QlineEdit {\n" "rgb(144, 203, 255)\n" "}")
        MainWindow.setDockOptions(QtWidgets.QMainWindow.AllowNestedDocks
                                  | QtWidgets.QMainWindow.AllowTabbedDocks
                                  | QtWidgets.QMainWindow.AnimatedDocks)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.positionSlider = QtWidgets.QSlider(self.centralwidget)
        self.positionSlider.setGeometry(QtCore.QRect(280, 720, 811, 22))
        self.positionSlider.setStyleSheet("")
        self.positionSlider.setMaximum(99)
        self.positionSlider.setSingleStep(10)
        self.positionSlider.setOrientation(QtCore.Qt.Horizontal)
        self.positionSlider.setObjectName("positionSlider")
        self.play_push = QtWidgets.QPushButton(self.centralwidget)
        self.play_push.setGeometry(QtCore.QRect(330, 760, 75, 23))
        self.play_push.setObjectName("play_push")
        self.next_frame_push = QtWidgets.QPushButton(self.centralwidget)
        self.next_frame_push.setGeometry(QtCore.QRect(550, 760, 121, 23))
        self.next_frame_push.setObjectName("next_frame_push")
        self.prev_frame_push = QtWidgets.QPushButton(self.centralwidget)
        self.prev_frame_push.setGeometry(QtCore.QRect(424, 760, 121, 23))
        self.prev_frame_push.setObjectName("prev_frame_push")
        self.label = QtWidgets.QLabel(self.centralwidget)
        self.label.setGeometry(QtCore.QRect(720, 750, 47, 13))
        self.label.setObjectName("label")
        self.videoWindow = QtWidgets.QGraphicsView(self.centralwidget)
        self.videoWindow.setGeometry(QtCore.QRect(230, 0, 1061, 271))
        self.videoWindow.setAutoFillBackground(True)
        self.videoWindow.setObjectName("videoWindow")
        self.spinBox_offset = QtWidgets.QSpinBox(self.centralwidget)
        self.spinBox_offset.setGeometry(QtCore.QRect(710, 770, 61, 31))
        self.spinBox_offset.setMinimum(-100000)
        self.spinBox_offset.setMaximum(1000000)
        self.spinBox_offset.setSingleStep(10)
        self.spinBox_offset.setObjectName("spinBox_offset")
        self.graphicsView = GraphicsLayoutWidget(self.centralwidget)
        self.graphicsView.setGeometry(QtCore.QRect(0, 280, 1591, 431))
        self.graphicsView.setAutoFillBackground(True)
        self.graphicsView.setDragMode(QtWidgets.QGraphicsView.ScrollHandDrag)
        self.graphicsView.setObjectName("graphicsView")
        self.lcdNumber = QtWidgets.QLCDNumber(self.centralwidget)
        self.lcdNumber.setGeometry(QtCore.QRect(1300, 40, 271, 31))
        self.lcdNumber.setSmallDecimalPoint(True)
        self.lcdNumber.setDigitCount(10)
        self.lcdNumber.setMode(QtWidgets.QLCDNumber.Dec)
        self.lcdNumber.setObjectName("lcdNumber")
        self.fps_spin_box = QtWidgets.QSpinBox(self.centralwidget)
        self.fps_spin_box.setGeometry(QtCore.QRect(790, 770, 51, 31))
        self.fps_spin_box.setMaximum(200)
        self.fps_spin_box.setObjectName("fps_spin_box")
        self.label_2 = QtWidgets.QLabel(self.centralwidget)
        self.label_2.setGeometry(QtCore.QRect(800, 750, 47, 13))
        self.label_2.setObjectName("label_2")
        self.y_axes_range = QtWidgets.QGroupBox(self.centralwidget)
        self.y_axes_range.setGeometry(QtCore.QRect(850, 750, 111, 51))
        self.y_axes_range.setObjectName("y_axes_range")
        self.spinBox_max = QtWidgets.QSpinBox(self.y_axes_range)
        self.spinBox_max.setGeometry(QtCore.QRect(60, 29, 35, 18))
        self.spinBox_max.setMinimum(-999999999)
        self.spinBox_max.setMaximum(999999999)
        self.spinBox_max.setObjectName("spinBox_max")
        self.label_4 = QtWidgets.QLabel(self.y_axes_range)
        self.label_4.setGeometry(QtCore.QRect(60, 10, 35, 13))
        self.label_4.setObjectName("label_4")
        self.spinBox_min = QtWidgets.QSpinBox(self.y_axes_range)
        self.spinBox_min.setGeometry(QtCore.QRect(10, 29, 35, 18))
        self.spinBox_min.setMinimum(-99999999)
        self.spinBox_min.setMaximum(999999999)
        self.spinBox_min.setObjectName("spinBox_min")
        self.label_5 = QtWidgets.QLabel(self.y_axes_range)
        self.label_5.setGeometry(QtCore.QRect(10, 10, 35, 13))
        self.label_5.setObjectName("label_5")
        self.spinBoxGoFrame = QtWidgets.QSpinBox(self.centralwidget)
        self.spinBoxGoFrame.setGeometry(QtCore.QRect(960, 770, 81, 21))
        self.spinBoxGoFrame.setMinimum(1)
        self.spinBoxGoFrame.setMaximum(999999999)
        self.spinBoxGoFrame.setObjectName("spinBoxGoFrame")
        self.label_3 = QtWidgets.QLabel(self.centralwidget)
        self.label_3.setGeometry(QtCore.QRect(970, 750, 81, 21))
        self.label_3.setObjectName("label_3")
        self.listWidget = QtWidgets.QListWidget(self.centralwidget)
        self.listWidget.setGeometry(QtCore.QRect(0, 0, 221, 271))
        self.listWidget.setAlternatingRowColors(True)
        self.listWidget.setObjectName("listWidget")
        self.label_6 = QtWidgets.QLabel(self.centralwidget)
        self.label_6.setGeometry(QtCore.QRect(1080, 750, 61, 16))
        self.label_6.setObjectName("label_6")
        self.go_to_time_spin = QtWidgets.QDoubleSpinBox(self.centralwidget)
        self.go_to_time_spin.setGeometry(QtCore.QRect(1070, 770, 61, 21))
        self.go_to_time_spin.setDecimals(3)
        self.go_to_time_spin.setMaximum(100000000.0)
        self.go_to_time_spin.setObjectName("go_to_time_spin")
        self.label_7 = QtWidgets.QLabel(self.centralwidget)
        self.label_7.setGeometry(QtCore.QRect(1350, 10, 191, 21))
        self.label_7.setObjectName("label_7")
        self.label_8 = QtWidgets.QLabel(self.centralwidget)
        self.label_8.setGeometry(QtCore.QRect(1350, 160, 191, 21))
        self.label_8.setObjectName("label_8")
        self.lcdNumber_stim = QtWidgets.QLCDNumber(self.centralwidget)
        self.lcdNumber_stim.setGeometry(QtCore.QRect(1300, 180, 271, 31))
        self.lcdNumber_stim.setSmallDecimalPoint(True)
        self.lcdNumber_stim.setDigitCount(10)
        self.lcdNumber_stim.setMode(QtWidgets.QLCDNumber.Dec)
        self.lcdNumber_stim.setObjectName("lcdNumber_stim")
        self.lcdNumber_2 = QtWidgets.QLCDNumber(self.centralwidget)
        self.lcdNumber_2.setGeometry(QtCore.QRect(1350, 110, 151, 23))
        self.lcdNumber_2.setSmallDecimalPoint(True)
        self.lcdNumber_2.setDigitCount(6)
        self.lcdNumber_2.setObjectName("lcdNumber_2")
        self.label_9 = QtWidgets.QLabel(self.centralwidget)
        self.label_9.setGeometry(QtCore.QRect(1380, 90, 91, 21))
        self.label_9.setObjectName("label_9")
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 1600, 21))
        self.menubar.setObjectName("menubar")
        self.menuData_Visualizer = QtWidgets.QMenu(self.menubar)
        self.menuData_Visualizer.setObjectName("menuData_Visualizer")
        self.menuView = QtWidgets.QMenu(self.menubar)
        self.menuView.setObjectName("menuView")
        self.menuPreferences = QtWidgets.QMenu(self.menubar)
        self.menuPreferences.setObjectName("menuPreferences")
        self.menuNavigation_type = QtWidgets.QMenu(self.menuPreferences)
        self.menuNavigation_type.setObjectName("menuNavigation_type")
        self.menuDown_sampling_value = QtWidgets.QMenu(self.menuPreferences)
        self.menuDown_sampling_value.setObjectName("menuDown_sampling_value")
        self.menuTools = QtWidgets.QMenu(self.menubar)
        self.menuTools.setObjectName("menuTools")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)
        self.actionLoad_Video = QtWidgets.QAction(MainWindow)
        self.actionLoad_Video.setObjectName("actionLoad_Video")
        self.actionLoad_data = QtWidgets.QAction(MainWindow)
        self.actionLoad_data.setObjectName("actionLoad_data")
        self.actionRaw_data = QtWidgets.QAction(MainWindow)
        self.actionRaw_data.setObjectName("actionRaw_data")
        self.actionPreprocessed_data = QtWidgets.QAction(MainWindow)
        self.actionPreprocessed_data.setObjectName("actionPreprocessed_data")
        self.actionICA = QtWidgets.QAction(MainWindow)
        self.actionICA.setObjectName("actionICA")
        self.actionFPS = QtWidgets.QAction(MainWindow)
        self.actionFPS.setObjectName("actionFPS")
        self.actionFrames = QtWidgets.QAction(MainWindow)
        self.actionFrames.setObjectName("actionFrames")
        self.actionTime_of_signal = QtWidgets.QAction(MainWindow)
        self.actionTime_of_signal.setObjectName("actionTime_of_signal")
        self.actionvalue = QtWidgets.QAction(MainWindow)
        self.actionvalue.setObjectName("actionvalue")
        self.actionauto = QtWidgets.QAction(MainWindow)
        self.actionauto.setObjectName("actionauto")
        self.actionTag = QtWidgets.QAction(MainWindow)
        self.actionTag.setObjectName("actionTag")
        self.menuData_Visualizer.addAction(self.actionLoad_Video)
        self.menuData_Visualizer.addAction(self.actionLoad_data)
        self.menuView.addAction(self.actionRaw_data)
        self.menuView.addAction(self.actionPreprocessed_data)
        self.menuView.addAction(self.actionICA)
        self.menuNavigation_type.addAction(self.actionFrames)
        self.menuNavigation_type.addAction(self.actionTime_of_signal)
        self.menuDown_sampling_value.addAction(self.actionvalue)
        self.menuDown_sampling_value.addAction(self.actionauto)
        self.menuPreferences.addSeparator()
        self.menuPreferences.addAction(self.actionFPS)
        self.menuPreferences.addAction(self.menuNavigation_type.menuAction())
        self.menuPreferences.addAction(
            self.menuDown_sampling_value.menuAction())
        self.menuTools.addAction(self.actionTag)
        self.menubar.addAction(self.menuData_Visualizer.menuAction())
        self.menubar.addAction(self.menuView.menuAction())
        self.menubar.addAction(self.menuPreferences.menuAction())
        self.menubar.addAction(self.menuTools.menuAction())

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.play_push.setText(_translate("MainWindow", "Play"))
        self.next_frame_push.setText(_translate("MainWindow", "Next frame"))
        self.prev_frame_push.setText(_translate("MainWindow",
                                                "Previous frame"))
        self.label.setText(
            _translate(
                "MainWindow",
                "<html><head/><body><p><span style=\" font-size:14pt; font-weight:600; vertical-align:super;\">Offset</span></p></body></html>"
            ))
        self.label_2.setText(_translate("MainWindow", "FPS "))
        self.y_axes_range.setTitle(_translate("MainWindow", "Y axes range"))
        self.label_4.setText(_translate("MainWindow", "max"))
        self.label_5.setText(_translate("MainWindow", "min"))
        self.label_3.setText(_translate("MainWindow", "Go to frame"))
        self.label_6.setText(_translate("MainWindow", "Go to time"))
        self.label_7.setText(
            _translate("MainWindow", "Subject video (time/frame)"))
        self.label_8.setText(
            _translate("MainWindow", "Stimulus Video (Time/frame)"))
        self.label_9.setText(_translate("MainWindow", "Stimulus number"))
        self.menuData_Visualizer.setTitle(_translate("MainWindow", "File"))
        self.menuView.setTitle(_translate("MainWindow", "View"))
        self.menuPreferences.setTitle(_translate("MainWindow", "Preferences"))
        self.menuNavigation_type.setTitle(
            _translate("MainWindow", "Navigation type"))
        self.menuDown_sampling_value.setTitle(
            _translate("MainWindow", "Down sampling value"))
        self.menuTools.setTitle(_translate("MainWindow", "Tools"))
        self.actionLoad_Video.setText(_translate("MainWindow", "Load Video"))
        self.actionLoad_data.setText(_translate("MainWindow", "Load data"))
        self.actionRaw_data.setText(_translate("MainWindow", "Raw data"))
        self.actionPreprocessed_data.setText(
            _translate("MainWindow", "Preprocessed data"))
        self.actionICA.setText(_translate("MainWindow", "ICA "))
        self.actionFPS.setText(_translate("MainWindow", "FPS"))
        self.actionFrames.setText(_translate("MainWindow", "Video frames"))
        self.actionTime_of_signal.setText(
            _translate("MainWindow", "Time of signal"))
        self.actionvalue.setText(_translate("MainWindow", "Value"))
        self.actionauto.setText(_translate("MainWindow", "Auto"))
        self.actionTag.setText(_translate("MainWindow", "Tag"))
示例#3
0
class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName(_fromUtf8("MainWindow"))
        MainWindow.resize(704, 558)
        MainWindow.setMinimumSize(QtCore.QSize(0, 0))
        MainWindow.setStyleSheet(_fromUtf8("\n"
"/*\n"
"    Android Material Dark\n"
"    COLOR_DARK     = #212121 Grey 900\n"
"    COLOR_MEDIUM   = #424242 Grey 800\n"
"    COLOR_MEDLIGHT = #757575 Grey 600\n"
"    COLOR_LIGHT    = #DDDDDD White\n"
"    COLOR_ACCENT   = #3F51B5 Indigo 500\n"
"*/\n"
"\n"
"* {\n"
"    background: #212121;\n"
"    color: #DDDDDD;\n"
"    border: 1px solid #757575;\n"
"}\n"
"\n"
"QWidget::item:selected {\n"
"    background: #3F51B5;\n"
"}\n"
"\n"
"QCheckBox, QRadioButton {\n"
"    border: none;\n"
"}\n"
"\n"
"QRadioButton::indicator, QCheckBox::indicator {\n"
"    width: 13px;\n"
"    height: 13px;\n"
"}\n"
"\n"
"QRadioButton::indicator::unchecked, QCheckBox::indicator::unchecked {\n"
"    border: 1px solid #757575;\n"
"    background: none;\n"
"}\n"
"\n"
"QRadioButton::indicator:unchecked:hover, QCheckBox::indicator:unchecked:hover {\n"
"    border: 1px solid #DDDDDD;\n"
"}\n"
"\n"
"QRadioButton::indicator::checked, QCheckBox::indicator::checked {\n"
"    border: 1px solid #757575;\n"
"    background: #757575;\n"
"}\n"
"\n"
"QRadioButton::indicator:checked:hover, QCheckBox::indicator:checked:hover {\n"
"    border: 1px solid #DDDDDD;\n"
"    background: #DDDDDD;\n"
"}\n"
"\n"
"QGroupBox {\n"
"    margin-top: 6px;\n"
"}\n"
"\n"
"QGroupBox::title {\n"
"    top: -7px;\n"
"    left: 7px;\n"
"}\n"
"\n"
"QScrollBar {\n"
"    border: 1px solid #757575;\n"
"    background: #212121;\n"
"}\n"
"\n"
"QScrollBar:horizontal {\n"
"    height: 15px;\n"
"    margin: 0px 0px 0px 32px;\n"
"}\n"
"\n"
"QScrollBar:vertical {\n"
"    width: 15px;\n"
"    margin: 32px 0px 0px 0px;\n"
"}\n"
"\n"
"QScrollBar::handle {\n"
"    background: #424242;\n"
"    border: 1px solid #757575;\n"
"}\n"
"\n"
"QScrollBar::handle:horizontal {\n"
"    border-width: 0px 1px 0px 1px;\n"
"}\n"
"\n"
"QScrollBar::handle:vertical {\n"
"    border-width: 1px 0px 1px 0px;\n"
"}\n"
"\n"
"QScrollBar::handle:horizontal {\n"
"    min-width: 20px;\n"
"}\n"
"\n"
"QScrollBar::handle:vertical {\n"
"    min-height: 20px;\n"
"}\n"
"\n"
"QScrollBar::add-line, QScrollBar::sub-line {\n"
"    background:#424242;\n"
"    border: 1px solid #757575;\n"
"    subcontrol-origin: margin;\n"
"}\n"
"\n"
"QScrollBar::add-line {\n"
"    position: absolute;\n"
"}\n"
"\n"
"QScrollBar::add-line:horizontal {\n"
"    width: 15px;\n"
"    subcontrol-position: left;\n"
"    left: 15px;\n"
"}\n"
"\n"
"QScrollBar::add-line:vertical {\n"
"    height: 15px;\n"
"    subcontrol-position: top;\n"
"    top: 15px;\n"
"}\n"
"\n"
"QScrollBar::sub-line:horizontal {\n"
"    width: 15px;\n"
"    subcontrol-position: top left;\n"
"}\n"
"\n"
"QScrollBar::sub-line:vertical {\n"
"    height: 15px;\n"
"    subcontrol-position: top;\n"
"}\n"
"\n"
"QScrollBar:left-arrow, QScrollBar::right-arrow, QScrollBar::up-arrow, QScrollBar::down-arrow {\n"
"    border: 1px solid #757575;\n"
"    width: 3px;\n"
"    height: 3px;\n"
"}\n"
"\n"
"QScrollBar::add-page, QScrollBar::sub-page {\n"
"    background: none;\n"
"}\n"
"\n"
"QAbstractButton:hover {\n"
"    background: #424242;\n"
"}\n"
"\n"
"QAbstractButton:pressed {\n"
"    background: #757575;\n"
"}\n"
"\n"
"QAbstractItemView {\n"
"    show-decoration-selected: 1;\n"
"    selection-background-color: #3F51B5;\n"
"    selection-color: #DDDDDD;\n"
"    alternate-background-color: #424242;\n"
"}\n"
"\n"
"QHeaderView {\n"
"    border: 1px solid #757575;\n"
"}\n"
"\n"
"QHeaderView::section {\n"
"    background: #212121;\n"
"    border: 1px solid #757575;\n"
"    padding: 4px;\n"
"}\n"
"\n"
"QHeaderView::section:selected, QHeaderView::section::checked {\n"
"    background: #424242;\n"
"}\n"
"\n"
"QTableView {\n"
"    gridline-color: #757575;\n"
"}\n"
"\n"
"QTabBar {\n"
"    margin-left: 2px;\n"
"}\n"
"\n"
"QTabBar::tab {\n"
"    border-radius: 0px;\n"
"    padding: 4px;\n"
"    margin: 4px;\n"
"}\n"
"\n"
"QTabBar::tab:selected {\n"
"    background: #424242;\n"
"}\n"
"\n"
"QComboBox::down-arrow {\n"
"    border: 1px solid #757575;\n"
"    background: #424242;\n"
"}\n"
"\n"
"QComboBox::drop-down {\n"
"    border: 1px solid #757575;\n"
"    background: #424242;\n"
"}\n"
"\n"
"QComboBox::down-arrow {\n"
"    width: 3px;\n"
"    height: 3px;\n"
"    border: 1px solid #757575;\n"
"}\n"
"\n"
"QAbstractSpinBox {\n"
"    padding-right: 15px;\n"
"}\n"
"\n"
"QAbstractSpinBox::up-button, QAbstractSpinBox::down-button {\n"
"    border: 1px solid #757575;\n"
"    background: #424242;\n"
"    subcontrol-origin: border;\n"
"}\n"
"\n"
"QAbstractSpinBox::up-arrow, QAbstractSpinBox::down-arrow {\n"
"    width: 3px;\n"
"    height: 3px;\n"
"    border: 1px solid #757575;\n"
"}\n"
"\n"
"QSlider {\n"
"    border: none;\n"
"}\n"
"\n"
"QSlider::groove:horizontal {\n"
"    height: 5px;\n"
"    margin: 4px 0px 4px 0px;\n"
"}\n"
"\n"
"QSlider::groove:vertical {\n"
"    width: 5px;\n"
"    margin: 0px 4px 0px 4px;\n"
"}\n"
"\n"
"QSlider::handle {\n"
"    border: 1px solid #757575;\n"
"    background: #424242;\n"
"}\n"
"\n"
"QSlider::handle:horizontal {\n"
"    width: 15px;\n"
"    margin: -4px 0px -4px 0px;\n"
"}\n"
"\n"
"QSlider::handle:vertical {\n"
"    height: 15px;\n"
"    margin: 0px -4px 0px -4px;\n"
"}\n"
"\n"
"QSlider::add-page:vertical, QSlider::sub-page:horizontal {\n"
"    background: #3F51B5;\n"
"}\n"
"\n"
"QSlider::sub-page:vertical, QSlider::add-page:horizontal {\n"
"    background: #424242;\n"
"}\n"
"\n"
"QLabel {\n"
"    border: none;\n"
"}\n"
"\n"
"QProgressBar {\n"
"    text-align: center;\n"
"}\n"
"\n"
"QProgressBar::chunk {\n"
"    width: 1px;\n"
"    background-color: #3F51B5;\n"
"}\n"
"\n"
"QMenu::separator {\n"
"    background: #424242;\n"
"}\n"
"\n"
"QStatusBar {\n"
"    border: 1px;\n"
"    color: #3F51B5;\n"
"}"))
        MainWindow.setTabShape(QtGui.QTabWidget.Rounded)
        self.centralwidget = QtGui.QWidget(MainWindow)
        self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
        self.gridLayout = QtGui.QGridLayout(self.centralwidget)
        self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
        self.Layout_controls2 = QtGui.QGridLayout()
        self.Layout_controls2.setObjectName(_fromUtf8("Layout_controls2"))
        spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
        self.Layout_controls2.addItem(spacerItem, 0, 1, 1, 1)
        self.chBox_export = QtGui.QCheckBox(self.centralwidget)
        self.chBox_export.setObjectName(_fromUtf8("chBox_export"))
        self.Layout_controls2.addWidget(self.chBox_export, 0, 0, 1, 1)
        self.gridLayout.addLayout(self.Layout_controls2, 9, 1, 1, 1)
        self.Layout_controls = QtGui.QGridLayout()
        self.Layout_controls.setObjectName(_fromUtf8("Layout_controls"))
        self.cBox_Speed = QtGui.QComboBox(self.centralwidget)
        self.cBox_Speed.setObjectName(_fromUtf8("cBox_Speed"))
        self.Layout_controls.addWidget(self.cBox_Speed, 0, 1, 1, 1)
        self.cBox_Port = QtGui.QComboBox(self.centralwidget)
        self.cBox_Port.setObjectName(_fromUtf8("cBox_Port"))
        self.Layout_controls.addWidget(self.cBox_Port, 0, 0, 1, 1)
        self.pButton_Start = QtGui.QPushButton(self.centralwidget)
        self.pButton_Start.setMinimumSize(QtCore.QSize(0, 0))
        self.pButton_Start.setObjectName(_fromUtf8("pButton_Start"))
        self.Layout_controls.addWidget(self.pButton_Start, 1, 0, 1, 1)
        self.pButton_Stop = QtGui.QPushButton(self.centralwidget)
        self.pButton_Stop.setObjectName(_fromUtf8("pButton_Stop"))
        self.Layout_controls.addWidget(self.pButton_Stop, 1, 1, 1, 1)
        self.gridLayout.addLayout(self.Layout_controls, 7, 0, 1, 2)
        self.Layout_graphs = QtGui.QGridLayout()
        self.Layout_graphs.setObjectName(_fromUtf8("Layout_graphs"))
        self.plt = GraphicsLayoutWidget(self.centralwidget)
        self.plt.setAutoFillBackground(False)
        self.plt.setStyleSheet(_fromUtf8("border: 0px;"))
        self.plt.setFrameShape(QtGui.QFrame.StyledPanel)
        self.plt.setFrameShadow(QtGui.QFrame.Plain)
        self.plt.setLineWidth(0)
        self.plt.setObjectName(_fromUtf8("plt"))
        self.Layout_graphs.addWidget(self.plt, 0, 0, 1, 1)
        self.gridLayout.addLayout(self.Layout_graphs, 2, 1, 1, 1)
        MainWindow.setCentralWidget(self.centralwidget)
        self.statusbar = QtGui.QStatusBar(MainWindow)
        self.statusbar.setSizeGripEnabled(False)
        self.statusbar.setObjectName(_fromUtf8("statusbar"))
        MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        MainWindow.setWindowTitle(_translate("MainWindow", "RTGraph", None))
        self.chBox_export.setText(_translate("MainWindow", "Export to CSV", None))
        self.pButton_Start.setText(_translate("MainWindow", "Start", None))
        self.pButton_Stop.setText(_translate("MainWindow", "Stop", None))
示例#4
0
class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(704, 558)
        MainWindow.setMinimumSize(QtCore.QSize(0, 0))
        MainWindow.setStyleSheet("")
        MainWindow.setTabShape(QtWidgets.QTabWidget.Rounded)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.gridLayout = QtWidgets.QGridLayout(self.centralwidget)
        self.gridLayout.setObjectName("gridLayout")
        self.Layout_controls = QtWidgets.QGridLayout()
        self.Layout_controls.setObjectName("Layout_controls")
        self.cBox_Speed = QtWidgets.QComboBox(self.centralwidget)
        self.cBox_Speed.setEditable(True)
        self.cBox_Speed.setObjectName("cBox_Speed")
        self.Layout_controls.addWidget(self.cBox_Speed, 1, 1, 1, 1)
        self.pButton_Stop = QtWidgets.QPushButton(self.centralwidget)
        self.pButton_Stop.setObjectName("pButton_Stop")
        self.Layout_controls.addWidget(self.pButton_Stop, 1, 3, 1, 1)
        self.cBox_Port = QtWidgets.QComboBox(self.centralwidget)
        self.cBox_Port.setEditable(True)
        self.cBox_Port.setObjectName("cBox_Port")
        self.Layout_controls.addWidget(self.cBox_Port, 0, 1, 1, 1)
        self.cBox_Source = QtWidgets.QComboBox(self.centralwidget)
        self.cBox_Source.setObjectName("cBox_Source")
        self.Layout_controls.addWidget(self.cBox_Source, 0, 0, 1, 1)
        self.pButton_Start = QtWidgets.QPushButton(self.centralwidget)
        self.pButton_Start.setMinimumSize(QtCore.QSize(0, 0))
        self.pButton_Start.setObjectName("pButton_Start")
        self.Layout_controls.addWidget(self.pButton_Start, 0, 3, 1, 1)
        self.sBox_Samples = QtWidgets.QSpinBox(self.centralwidget)
        self.sBox_Samples.setMinimum(1)
        self.sBox_Samples.setMaximum(100000)
        self.sBox_Samples.setProperty("value", 500)
        self.sBox_Samples.setObjectName("sBox_Samples")
        self.Layout_controls.addWidget(self.sBox_Samples, 0, 2, 1, 1)
        self.chBox_export = QtWidgets.QCheckBox(self.centralwidget)
        self.chBox_export.setEnabled(True)
        self.chBox_export.setObjectName("chBox_export")
        self.Layout_controls.addWidget(self.chBox_export, 1, 2, 1, 1)
        self.gridLayout.addLayout(self.Layout_controls, 7, 0, 1, 2)
        self.Layout_graphs = QtWidgets.QGridLayout()
        self.Layout_graphs.setObjectName("Layout_graphs")
        self.plt = GraphicsLayoutWidget(self.centralwidget)
        self.plt.setAutoFillBackground(False)
        self.plt.setStyleSheet("border: 0px;")
        self.plt.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.plt.setFrameShadow(QtWidgets.QFrame.Plain)
        self.plt.setLineWidth(0)
        self.plt.setObjectName("plt")
        self.Layout_graphs.addWidget(self.plt, 0, 0, 1, 1)
        self.gridLayout.addLayout(self.Layout_graphs, 2, 1, 1, 1)
        MainWindow.setCentralWidget(self.centralwidget)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "RTGraph"))
        self.pButton_Stop.setText(_translate("MainWindow", "Stop"))
        self.pButton_Start.setText(_translate("MainWindow", "Start"))
        self.sBox_Samples.setSuffix(_translate("MainWindow", " samples"))
        self.sBox_Samples.setPrefix(_translate("MainWindow", "Show "))
        self.chBox_export.setText(_translate("MainWindow", "Export to CSV"))
示例#5
0
class main_ui(object):

    def setup_ui(self, MainWindow):
        MainWindow.setObjectName('MainWindow')
        MainWindow.resize(800, 600)

        # create central widget and layout
        self.central_widget = QtWidgets.QWidget(MainWindow)
        self.central_widget.setObjectName("central_widget")
        self.central_layout = QtWidgets.QHBoxLayout(self.central_widget)
        self.central_layout.setObjectName("central_layout")

        # create main layout
        self.main_layout = QtWidgets.QVBoxLayout()
        self.main_layout.setObjectName("main_layout")
        self.main_layout.addWidget(QtWidgets.QLabel("mBCI Lab v0.0.1"))

        # main layout: plot widget
        self.plt = GraphicsLayoutWidget()
        self.plt.setAutoFillBackground(False)
        self.plt.setStyleSheet("border: 1px;")
        self.plt.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.plt.setFrameShadow(QtWidgets.QFrame.Plain)
        self.plt.setLineWidth(0)
        self.plt.setMinimumWidth(600)
        self.plt.setObjectName("plt")
        self.main_layout.addWidget(self.plt)
        
        # main layout: console log
        self.tBrowser_Log = QtWidgets.QTextBrowser()
        self.tBrowser_Log.setFixedHeight(120)
        self.tBrowser_Log.setObjectName("tBrowser_Log")
        self.main_layout.addWidget(self.tBrowser_Log)
        self.tBrowser_Log.append("mBCI Lab is a fork of RTGraph and a real-time graphing program for the mBCI project.\nIts purpose is to plot neural signals in real time.\nIt can also be used for any single-time-domain, serial-port device.\nLink to mBCI project: https://github.com/chanhakim/mbci")
        self.tBrowser_Log.append("-------------------------")


        # create control layout
        self.control_layout = QtWidgets.QVBoxLayout()
        self.control_layout.setObjectName("control_layout")
        empty = QtWidgets.QLabel()
        empty.setFixedWidth(140)
        self.control_layout.addWidget(empty)

        # control layout: view options label
        self.qLabel_ViewOptions = QtWidgets.QLabel("View Options")
        self.qLabel_ViewOptions.setObjectName("qLabel_ViewOptions")
        self.qLabel_ViewOptions.setAlignment(QtCore.Qt.AlignCenter)
        self.control_layout.addWidget(self.qLabel_ViewOptions)

        # control layout: start button
        self.pButton_Start = QtWidgets.QPushButton("Start")
        self.pButton_Start.setObjectName("pButton_Start")
        self.control_layout.addWidget(self.pButton_Start)

        # control layout: stop button
        self.pButton_Stop = QtWidgets.QPushButton("Stop")
        self.pButton_Stop.setObjectName("pButton_Stop")
        self.control_layout.addWidget(self.pButton_Stop)

        self.control_layout.addWidget(_qline()) # hline separator

        # control layout: record options label
        self.qLabel_RecordOptions = QtWidgets.QLabel("Record Options")
        self.qLabel_RecordOptions.setObjectName("qLabel_RecordOptions")
        self.qLabel_RecordOptions.setAlignment(QtCore.Qt.AlignCenter)
        self.control_layout.addWidget(self.qLabel_RecordOptions)

        # control layout: plot sample no. spin box
        self.sBox_Seconds = QtWidgets.QSpinBox()
        self.sBox_Seconds.setObjectName("sBox_Seconds")
        self.sBox_Seconds.setMinimum(0)
        self.sBox_Seconds.setMaximum(3600)
        self.sBox_Seconds.setProperty('value', 0)
        self.control_layout.addWidget(self.sBox_Seconds)

        # control layout: record button
        self.pButton_Record = QtWidgets.QPushButton("Record")
        self.pButton_Record.setObjectName("pButton_Record")
        self.control_layout.addWidget(self.pButton_Record)

        # control layout: save button
        self.pButton_Save = QtWidgets.QPushButton("Save")
        self.pButton_Save.setObjectName("pButton_Save")
        self.control_layout.addWidget(self.pButton_Save)

        self.control_layout.addWidget(_qline()) # hline separator

        # control layout: BCI options label
        self.qLabel_BCIOptions = QtWidgets.QLabel("BCI/Plot Options")
        self.qLabel_BCIOptions.setObjectName("qLabel_BCIOptions")
        self.qLabel_BCIOptions.setAlignment(QtCore.Qt.AlignCenter)
        self.control_layout.addWidget(self.qLabel_BCIOptions)

        # control layout: port id combo box
        self.cBox_Port = QtWidgets.QComboBox()
        self.cBox_Port.setObjectName("cBox_Ports")
        self.cBox_Port.addItem("Ports (Refresh)")
        self.cBox_Port.setFixedWidth(140)
        self.control_layout.addWidget(self.cBox_Port)

        # control layout: baud rate combo box
        self.cBox_BaudRate = QtWidgets.QComboBox()
        self.cBox_BaudRate.setObjectName("cBox_BaudRate")
        self.cBox_BaudRate.addItems([str(num) for num in ["Baud Rate", 9600, 14400, 19200, 38400, 115200]])
        self.cBox_BaudRate.setFixedWidth(140)
        self.control_layout.addWidget(self.cBox_BaudRate)

        # control layout: plot sample no. spin box
        self.sBox_Samples = QtWidgets.QSpinBox()
        self.sBox_Samples.setObjectName("sBox_Samples")
        self.sBox_Samples.setMinimum(2)
        self.sBox_Samples.setMaximum(100000)
        self.sBox_Samples.setProperty('value', 1000)
        self.control_layout.addWidget(self.sBox_Samples)

        self.control_layout.addWidget(_qline()) # hline separator

        # control layout: record button
        self.pButton_Help = QtWidgets.QPushButton("Help")
        self.pButton_Help.setObjectName("pButton_Help")
        self.control_layout.addWidget(self.pButton_Help)

        self.control_layout.addStretch() # add stretch to bottom of controls

        # add main and control widgets to central
        self.central_layout.addLayout(self.main_layout)
        self.central_layout.addLayout(self.control_layout)
        MainWindow.setCentralWidget(self.central_widget)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "mbci_lab"))
        self.pButton_Start.setText(_translate("MainWindow", "Start"))
        self.pButton_Stop.setText(_translate("MainWindow", "Stop"))
        self.pButton_Record.setText(_translate("MainWindow", "Record"))
        self.pButton_Help.setText(_translate("MainWindow", "Help"))
        self.pButton_Save.setText(_translate("MainWindow", "Save"))
        self.sBox_Samples.setSuffix(_translate("MainWindow", " Samples"))
        self.sBox_Seconds.setSuffix(_translate("MainWindow", " Seconds"))
示例#6
0
文件: gui.py 项目: tnorth/RTGraph
class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName(_fromUtf8("MainWindow"))
        MainWindow.resize(999, 732)
        MainWindow.setMinimumSize(QtCore.QSize(0, 0))
        MainWindow.setStyleSheet(
            _fromUtf8(
                "\n"
                "/*\n"
                "    Android Material Dark\n"
                "    COLOR_DARK     = #212121 Grey 900\n"
                "    COLOR_MEDIUM   = #424242 Grey 800\n"
                "    COLOR_MEDLIGHT = #757575 Grey 600\n"
                "    COLOR_LIGHT    = #DDDDDD White\n"
                "    COLOR_ACCENT   = #3F51B5 Indigo 500\n"
                "*/\n"
                "\n"
                "* {\n"
                "    background: #212121;\n"
                "    color: #DDDDDD;\n"
                "    border: 1px solid #757575;\n"
                "}\n"
                "\n"
                "QWidget::item:selected {\n"
                "    background: #3F51B5;\n"
                "}\n"
                "\n"
                "QCheckBox, QRadioButton {\n"
                "    border: none;\n"
                "}\n"
                "\n"
                "QRadioButton::indicator, QCheckBox::indicator {\n"
                "    width: 13px;\n"
                "    height: 13px;\n"
                "}\n"
                "\n"
                "QRadioButton::indicator::unchecked, QCheckBox::indicator::unchecked {\n"
                "    border: 1px solid #757575;\n"
                "    background: none;\n"
                "}\n"
                "\n"
                "QRadioButton::indicator:unchecked:hover, QCheckBox::indicator:unchecked:hover {\n"
                "    border: 1px solid #DDDDDD;\n"
                "}\n"
                "\n"
                "QRadioButton::indicator::checked, QCheckBox::indicator::checked {\n"
                "    border: 1px solid #757575;\n"
                "    background: #757575;\n"
                "}\n"
                "\n"
                "QRadioButton::indicator:checked:hover, QCheckBox::indicator:checked:hover {\n"
                "    border: 1px solid #DDDDDD;\n"
                "    background: #DDDDDD;\n"
                "}\n"
                "\n"
                "QGroupBox {\n"
                "    margin-top: 6px;\n"
                "}\n"
                "\n"
                "QGroupBox::title {\n"
                "    top: -7px;\n"
                "    left: 7px;\n"
                "}\n"
                "\n"
                "QScrollBar {\n"
                "    border: 1px solid #757575;\n"
                "    background: #212121;\n"
                "}\n"
                "\n"
                "QScrollBar:horizontal {\n"
                "    height: 15px;\n"
                "    margin: 0px 0px 0px 32px;\n"
                "}\n"
                "\n"
                "QScrollBar:vertical {\n"
                "    width: 15px;\n"
                "    margin: 32px 0px 0px 0px;\n"
                "}\n"
                "\n"
                "QScrollBar::handle {\n"
                "    background: #424242;\n"
                "    border: 1px solid #757575;\n"
                "}\n"
                "\n"
                "QScrollBar::handle:horizontal {\n"
                "    border-width: 0px 1px 0px 1px;\n"
                "}\n"
                "\n"
                "QScrollBar::handle:vertical {\n"
                "    border-width: 1px 0px 1px 0px;\n"
                "}\n"
                "\n"
                "QScrollBar::handle:horizontal {\n"
                "    min-width: 20px;\n"
                "}\n"
                "\n"
                "QScrollBar::handle:vertical {\n"
                "    min-height: 20px;\n"
                "}\n"
                "\n"
                "QScrollBar::add-line, QScrollBar::sub-line {\n"
                "    background:#424242;\n"
                "    border: 1px solid #757575;\n"
                "    subcontrol-origin: margin;\n"
                "}\n"
                "\n"
                "QScrollBar::add-line {\n"
                "    position: absolute;\n"
                "}\n"
                "\n"
                "QScrollBar::add-line:horizontal {\n"
                "    width: 15px;\n"
                "    subcontrol-position: left;\n"
                "    left: 15px;\n"
                "}\n"
                "\n"
                "QScrollBar::add-line:vertical {\n"
                "    height: 15px;\n"
                "    subcontrol-position: top;\n"
                "    top: 15px;\n"
                "}\n"
                "\n"
                "QScrollBar::sub-line:horizontal {\n"
                "    width: 15px;\n"
                "    subcontrol-position: top left;\n"
                "}\n"
                "\n"
                "QScrollBar::sub-line:vertical {\n"
                "    height: 15px;\n"
                "    subcontrol-position: top;\n"
                "}\n"
                "\n"
                "QScrollBar:left-arrow, QScrollBar::right-arrow, QScrollBar::up-arrow, QScrollBar::down-arrow {\n"
                "    border: 1px solid #757575;\n"
                "    width: 3px;\n"
                "    height: 3px;\n"
                "}\n"
                "\n"
                "QScrollBar::add-page, QScrollBar::sub-page {\n"
                "    background: none;\n"
                "}\n"
                "\n"
                "QAbstractButton:hover {\n"
                "    background: #424242;\n"
                "}\n"
                "\n"
                "QAbstractButton:pressed {\n"
                "    background: #757575;\n"
                "}\n"
                "\n"
                "QAbstractItemView {\n"
                "    show-decoration-selected: 1;\n"
                "    selection-background-color: #3F51B5;\n"
                "    selection-color: #DDDDDD;\n"
                "    alternate-background-color: #424242;\n"
                "}\n"
                "\n"
                "QHeaderView {\n"
                "    border: 1px solid #757575;\n"
                "}\n"
                "\n"
                "QHeaderView::section {\n"
                "    background: #212121;\n"
                "    border: 1px solid #757575;\n"
                "    padding: 4px;\n"
                "}\n"
                "\n"
                "QHeaderView::section:selected, QHeaderView::section::checked {\n"
                "    background: #424242;\n"
                "}\n"
                "\n"
                "QTableView {\n"
                "    gridline-color: #757575;\n"
                "}\n"
                "\n"
                "QTabBar {\n"
                "    margin-left: 2px;\n"
                "}\n"
                "\n"
                "QTabBar::tab {\n"
                "    border-radius: 0px;\n"
                "    padding: 4px;\n"
                "    margin: 4px;\n"
                "}\n"
                "\n"
                "QTabBar::tab:selected {\n"
                "    background: #424242;\n"
                "}\n"
                "\n"
                "QComboBox::down-arrow {\n"
                "    border: 1px solid #757575;\n"
                "    background: #424242;\n"
                "}\n"
                "\n"
                "QComboBox::drop-down {\n"
                "    border: 1px solid #757575;\n"
                "    background: #424242;\n"
                "}\n"
                "\n"
                "QComboBox::down-arrow {\n"
                "    width: 3px;\n"
                "    height: 3px;\n"
                "    border: 1px solid #757575;\n"
                "}\n"
                "\n"
                "QAbstractSpinBox {\n"
                "    padding-right: 15px;\n"
                "}\n"
                "\n"
                "QAbstractSpinBox::up-button, QAbstractSpinBox::down-button {\n"
                "    border: 1px solid #757575;\n"
                "    background: #424242;\n"
                "    subcontrol-origin: border;\n"
                "}\n"
                "\n"
                "QAbstractSpinBox::up-arrow, QAbstractSpinBox::down-arrow {\n"
                "    width: 3px;\n"
                "    height: 3px;\n"
                "    border: 1px solid #757575;\n"
                "}\n"
                "\n"
                "QSlider {\n"
                "    border: none;\n"
                "}\n"
                "\n"
                "QSlider::groove:horizontal {\n"
                "    height: 5px;\n"
                "    margin: 4px 0px 4px 0px;\n"
                "}\n"
                "\n"
                "QSlider::groove:vertical {\n"
                "    width: 5px;\n"
                "    margin: 0px 4px 0px 4px;\n"
                "}\n"
                "\n"
                "QSlider::handle {\n"
                "    border: 1px solid #757575;\n"
                "    background: #424242;\n"
                "}\n"
                "\n"
                "QSlider::handle:horizontal {\n"
                "    width: 15px;\n"
                "    margin: -4px 0px -4px 0px;\n"
                "}\n"
                "\n"
                "QSlider::handle:vertical {\n"
                "    height: 15px;\n"
                "    margin: 0px -4px 0px -4px;\n"
                "}\n"
                "\n"
                "QSlider::add-page:vertical, QSlider::sub-page:horizontal {\n"
                "    background: #3F51B5;\n"
                "}\n"
                "\n"
                "QSlider::sub-page:vertical, QSlider::add-page:horizontal {\n"
                "    background: #424242;\n"
                "}\n"
                "\n"
                "QLabel {\n"
                "    border: none;\n"
                "}\n"
                "\n"
                "QProgressBar {\n"
                "    text-align: center;\n"
                "}\n"
                "\n"
                "QProgressBar::chunk {\n"
                "    width: 1px;\n"
                "    background-color: #3F51B5;\n"
                "}\n"
                "\n"
                "QMenu::separator {\n"
                "    background: #424242;\n"
                "}\n"
                "\n"
                "QStatusBar {\n"
                "    border: 1px;\n"
                "    color: #3F51B5;\n"
                "}"))
        MainWindow.setTabShape(QtGui.QTabWidget.Rounded)
        self.centralwidget = QtGui.QWidget(MainWindow)
        self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
        self.gridLayout = QtGui.QGridLayout(self.centralwidget)
        self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
        self.Layout_graphs = QtGui.QGridLayout()
        self.Layout_graphs.setObjectName(_fromUtf8("Layout_graphs"))
        self.horizontalLayout_5 = QtGui.QHBoxLayout()
        self.horizontalLayout_5.setObjectName(_fromUtf8("horizontalLayout_5"))
        self.lblSensorPos = QtGui.QLabel(self.centralwidget)
        self.lblSensorPos.setObjectName(_fromUtf8("lblSensorPos"))
        self.horizontalLayout_5.addWidget(self.lblSensorPos)
        self.sensorConfFile = QtGui.QLineEdit(self.centralwidget)
        self.sensorConfFile.setObjectName(_fromUtf8("sensorConfFile"))
        self.horizontalLayout_5.addWidget(self.sensorConfFile)
        self.sensorLoadbtn = QtGui.QPushButton(self.centralwidget)
        self.sensorLoadbtn.setObjectName(_fromUtf8("sensorLoadbtn"))
        self.horizontalLayout_5.addWidget(self.sensorLoadbtn)
        self.horizontalLayout_10 = QtGui.QHBoxLayout()
        self.horizontalLayout_10.setObjectName(
            _fromUtf8("horizontalLayout_10"))
        self.horizontalLayout_5.addLayout(self.horizontalLayout_10)
        self.lblSetupGeneral = QtGui.QLabel(self.centralwidget)
        self.lblSetupGeneral.setObjectName(_fromUtf8("lblSetupGeneral"))
        self.horizontalLayout_5.addWidget(self.lblSetupGeneral)
        self.setupGeneralFile = QtGui.QLineEdit(self.centralwidget)
        self.setupGeneralFile.setObjectName(_fromUtf8("setupGeneralFile"))
        self.horizontalLayout_5.addWidget(self.setupGeneralFile)
        self.setupLoadbtn = QtGui.QPushButton(self.centralwidget)
        self.setupLoadbtn.setObjectName(_fromUtf8("setupLoadbtn"))
        self.horizontalLayout_5.addWidget(self.setupLoadbtn)
        self.Layout_graphs.addLayout(self.horizontalLayout_5, 4, 0, 1, 1)
        self.Layout_controls = QtGui.QGridLayout()
        self.Layout_controls.setObjectName(_fromUtf8("Layout_controls"))
        self.horizontalLayout = QtGui.QHBoxLayout()
        self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout"))
        self.intCheckBox = QtGui.QCheckBox(self.centralwidget)
        self.intCheckBox.setObjectName(_fromUtf8("intCheckBox"))
        self.horizontalLayout.addWidget(self.intCheckBox)
        self.numIntSpinBox = QtGui.QSpinBox(self.centralwidget)
        self.numIntSpinBox.setMaximum(1000)
        self.numIntSpinBox.setProperty("value", 100)
        self.numIntSpinBox.setObjectName(_fromUtf8("numIntSpinBox"))
        self.horizontalLayout.addWidget(self.numIntSpinBox)
        self.label_2 = QtGui.QLabel(self.centralwidget)
        self.label_2.setObjectName(_fromUtf8("label_2"))
        self.horizontalLayout.addWidget(self.label_2)
        self.Layout_controls.addLayout(self.horizontalLayout, 4, 2, 1, 1)
        self.pButton_Stop = QtGui.QPushButton(self.centralwidget)
        self.pButton_Stop.setObjectName(_fromUtf8("pButton_Stop"))
        self.Layout_controls.addWidget(self.pButton_Stop, 0, 2, 1, 1)
        self.pButton_Start = QtGui.QPushButton(self.centralwidget)
        self.pButton_Start.setMinimumSize(QtCore.QSize(0, 0))
        self.pButton_Start.setObjectName(_fromUtf8("pButton_Start"))
        self.Layout_controls.addWidget(self.pButton_Start, 0, 0, 1, 1)
        self.label = QtGui.QLabel(self.centralwidget)
        self.label.setObjectName(_fromUtf8("label"))
        self.Layout_controls.addWidget(self.label, 4, 0, 1, 1)
        self.cmdLineEdit = QtGui.QLineEdit(self.centralwidget)
        self.cmdLineEdit.setObjectName(_fromUtf8("cmdLineEdit"))
        self.Layout_controls.addWidget(self.cmdLineEdit, 4, 1, 1, 1)
        self.Layout_graphs.addLayout(self.Layout_controls, 3, 0, 1, 1)
        self.verticalLayout = QtGui.QVBoxLayout()
        self.verticalLayout.setObjectName(_fromUtf8("verticalLayout"))
        self.Layout_graphs.addLayout(self.verticalLayout, 1, 0, 1, 1)
        self.plt = GraphicsLayoutWidget(self.centralwidget)
        self.plt.setAutoFillBackground(False)
        self.plt.setStyleSheet(_fromUtf8("border: 0px;"))
        self.plt.setFrameShape(QtGui.QFrame.StyledPanel)
        self.plt.setFrameShadow(QtGui.QFrame.Plain)
        self.plt.setLineWidth(0)
        self.plt.setObjectName(_fromUtf8("plt"))
        self.Layout_graphs.addWidget(self.plt, 0, 0, 1, 1)
        self.gridLayout.addLayout(self.Layout_graphs, 2, 0, 1, 1)
        MainWindow.setCentralWidget(self.centralwidget)
        self.statusbar = QtGui.QStatusBar(MainWindow)
        self.statusbar.setSizeGripEnabled(False)
        self.statusbar.setObjectName(_fromUtf8("statusbar"))
        MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        MainWindow.setWindowTitle(_translate("MainWindow", "RTGraph", None))
        self.lblSensorPos.setText(
            _translate("MainWindow", "Sensor position file:", None))
        self.sensorConfFile.setText(
            _translate("MainWindow", "sensors_pos.csv", None))
        self.sensorLoadbtn.setText(_translate("MainWindow", "Load", None))
        self.lblSetupGeneral.setText(
            _translate("MainWindow", "Setup file:", None))
        self.setupGeneralFile.setText(
            _translate("MainWindow", "setup_examples/setup_general.txt", None))
        self.setupLoadbtn.setText(_translate("MainWindow", "Load", None))
        self.intCheckBox.setText(
            _translate("MainWindow", "Integrate over", None))
        self.label_2.setText(_translate("MainWindow", "acquisitions", None))
        self.pButton_Stop.setText(_translate("MainWindow", "Stop", None))
        self.pButton_Start.setText(_translate("MainWindow", "Start", None))
        self.label.setText(
            _translate("MainWindow", "Command to execute:", None))
        self.cmdLineEdit.setText(
            _translate("MainWindow", "/home/lphe/usbBoard/Builds/test.sh",
                       None))
示例#7
0
class mainWindow(QMainWindow):
    # Metodo constructor de la clase
    def __init__(self):
        #Inicia el objeto QMainWindow
        QMainWindow.__init__(self)
        #carga la configuracion del archivo .ui en el objeto
        loadUi("mainWindowPPG.ui", self)
        # Loads everything about mainWindowPPG configuration
        self.setupUI()
        # Shared variables, initial values
        self.queue = Queue(N_SAMPLES)
        self.dataR = deque([], maxlen=N_SAMPLES)
        self.dataIR = deque([], maxlen=N_SAMPLES)
        self.TIME = deque([], maxlen=N_SAMPLES)
        self._plt = None
        self._timer_plot = None
        self.plot_colors = ['#0072bd', '#d95319']
        # configures
        self._configure_plot()
        self._configure_timers()
        self._configure_signals()

# Loads everything about mainWindowPPG configuration

    def setupUI(self):
        """
       Configures everything about the mainWindow
        """
        self.plt = GraphicsLayoutWidget(
            self.centralwidget)  # Bringing my plot wiindow as plt
        self.plt.setAutoFillBackground(False)
        self.plt.setStyleSheet("border: 0px;")
        self.plt.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.plt.setFrameShadow(QtWidgets.QFrame.Plain)
        self.plt.setLineWidth(0)
        self.Layout_graphs.addWidget(self.plt, 0, 0, 1,
                                     1)  # Set the plotting squared graph

    def _configure_plot(self):
        """
        Configures specific elements of the PyQtGraph plots.
        :return:
        """
        self.plt.setBackground(background=None)
        self.plt.setAntialiasing(True)
        self._plt = self.plt.addPlot(row=1, col=1)
        self._plt.setLabel('bottom', "Time", "s")
        pass

    def _configure_timers(self):
        """
        Configures specific elements of the QTimers.
        :return:
        """
        self._timer_plot = QtCore.QTimer(
            self)  # gives _timer_plot the attribute of QtCore.QTimer
        self._timer_plot.timeout.connect(
            self._update_plot)  # connects with _update_plot method
        pass

    def _update_plot(self):
        """
        Updates and redraws the graphics in the plot.
        This function us connected to the timeout signal of a QTimer.
        :return:
        """
        # Spo2 signal parameters
        f = 2
        amp1 = 0.5  # amplitud for Sine signal
        zeroDes1 = 0.5413  # Desplacement from zero for Sine signal
        amp2 = 0.5  # amplitud for Cosine signal
        zeroDes2 = 1.5413  # Desplacement from zero for Cosine signal
        # generate the time
        tsignal = time() - self.timestamp
        # Sine signal function
        sR = zeroDes1 + amp1 * 0.8 * np.sin(2 * np.pi * tsignal * 3 * f)
        # Cosine signal function
        sIR = zeroDes2 + amp2 * 0.8 * np.cos(2 * np.pi * tsignal * 3 * f)
        # put the data generate (time & signal) into queue
        self.queue.put([tsignal, sR, sIR])
        # get the data generate into queue
        data = self.queue.get(True, 1)
        # store data into variables
        self.TIME.append(data[0])
        self.dataR.append(data[1])
        self.dataIR.append(data[2])
        # Draw new data
        self._plt.clear()
        self._plt.plot(x=list(self.TIME)[-PLOT_UPDATE_POINTS:],
                       y=list(self.dataR)[-PLOT_UPDATE_POINTS:],
                       pen=self.plot_colors[1])
        self._plt.plot(x=list(self.TIME)[-PLOT_UPDATE_POINTS:],
                       y=list(self.dataIR)[-PLOT_UPDATE_POINTS:],
                       pen=self.plot_colors[0])

    def _configure_signals(self):
        """
        Configures the connections between signals and UI elements.
        :return:
        """
        self.startButton.clicked.connect(self.start)
        self.stopButton.clicked.connect(self.stop)

    def start(self):
        """
        Starts the acquisition of the selected serial port.
        This function is connected to the clicked signal of the Start button.
        :return:
        """
        self.timestamp = time()
        self._timer_plot.start(16)

    def stop(self):
        """
        Stops the acquisition of the selected serial port.
        This function is connected to the clicked signal of the Stop button.
        :return:
        """
        self._timer_plot.stop()  # stop the Qt timer
        self.reset_buffers()  # Go to reset the vector containing values

    def reset_buffers(self):
        self.dataR.clear()
        self.dataIR.clear()
        self.TIME.clear()