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"))
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"))
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))
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"))
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"))
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))
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()