Beispiel #1
0
class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(824, 745)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.verticalLayout = QtWidgets.QVBoxLayout(self.centralwidget)
        self.verticalLayout.setObjectName("verticalLayout")
        self.eegWaveLineChart = QChartView(self.centralwidget)
        self.eegWaveLineChart.setMinimumSize(QtCore.QSize(800, 600))
        self.eegWaveLineChart.setObjectName("eegWaveLineChart")
        self.verticalLayout.addWidget(self.eegWaveLineChart)
        self.inputTextEdit = QtWidgets.QTextEdit(self.centralwidget)
        self.inputTextEdit.setObjectName("inputTextEdit")
        self.verticalLayout.addWidget(self.inputTextEdit)
        self.startBtn = QtWidgets.QPushButton(self.centralwidget)
        self.startBtn.setObjectName("startBtn")
        self.verticalLayout.addWidget(self.startBtn)
        MainWindow.setCentralWidget(self.centralwidget)

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

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.startBtn.setText(_translate("MainWindow", "开始"))
Beispiel #2
0
    def __init__(self, parent=None):
        super(TableWidget, self).__init__(parent)

        # Create a simple model for storing data.
        model = CustomTableModel()

        # Create the table view and add the model to it.
        tableView = QTableView()
        tableView.setModel(model)
        tableView.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
        tableView.verticalHeader().setSectionResizeMode(QHeaderView.Stretch)

        chart = QChart()
        chart.setAnimationOptions(QChart.AllAnimations)

        # Series 1.
        series = QLineSeries()
        series.setName("Line 1")

        mapper = QVXYModelMapper(self)
        mapper.setXColumn(0)
        mapper.setYColumn(1)
        mapper.setSeries(series)
        mapper.setModel(model)
        chart.addSeries(series)

        # Get the color of the series and use it for showing the mapped area.
        seriesColorHex = self._series_color(series)
        model.addMapping(seriesColorHex, QRect(0, 0, 2, model.rowCount()))

        # Series 2.
        series = QLineSeries()
        series.setName("Line 2")

        mapper = QVXYModelMapper(self)
        mapper.setXColumn(2)
        mapper.setYColumn(3)
        mapper.setSeries(series)
        mapper.setModel(model)
        chart.addSeries(series)

        # Get the color of the series and use it for showing the mapped area.
        seriesColorHex = self._series_color(series)
        model.addMapping(seriesColorHex, QRect(2, 0, 2, model.rowCount()))

        chart.createDefaultAxes()
        chartView = QChartView(chart)
        chartView.setRenderHint(QPainter.Antialiasing)
        chartView.setMinimumSize(640, 480)

        # Create the main layout.
        mainLayout = QGridLayout()
        mainLayout.addWidget(tableView, 1, 0)
        mainLayout.addWidget(chartView, 1, 1)
        mainLayout.setColumnStretch(1, 1)
        mainLayout.setColumnStretch(0, 0)
        self.setLayout(mainLayout)
    def __init__(self, parent=None):
        super(TableWidget, self).__init__(parent)

        # Create a simple model for storing data.
        model = CustomTableModel()

        # Create the table view and add the model to it.
        tableView = QTableView()
        tableView.setModel(model)
        tableView.setMinimumWidth(300)
        tableView.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
        tableView.verticalHeader().setSectionResizeMode(QHeaderView.Stretch)

        chart = QChart()
        chart.setAnimationOptions(QChart.AllAnimations)

        # Series 1.
        series = QBarSeries()

        first = 3
        count = 5
        mapper = QVBarModelMapper(self)
        mapper.setFirstBarSetColumn(1)
        mapper.setLastBarSetColumn(4)
        mapper.setFirstRow(first)
        mapper.setRowCount(count)
        mapper.setSeries(series)
        mapper.setModel(model)
        chart.addSeries(series)

        # Get the color of the series and use it for showing the mapped area.
        for i, barset in enumerate(series.barSets()):
            seriesColorHex = hex(barset.brush().color().rgb()).upper()
            if seriesColorHex.endswith('L'):
                seriesColorHex = seriesColorHex[:-1]
            seriesColorHex = '#' + seriesColorHex[-6:]
            model.addMapping(seriesColorHex,
                             QRect(1 + i, first, 1, barset.count()))

        categories = ["April", "May", "June", "July", "August"]
        axis = QBarCategoryAxis(chart)
        axis.append(categories)
        chart.createDefaultAxes()
        chart.setAxisX(axis, series)

        chartView = QChartView(chart)
        chartView.setRenderHint(QPainter.Antialiasing)
        chartView.setMinimumSize(640, 480)

        # Create the main layout.
        mainLayout = QGridLayout()
        mainLayout.addWidget(tableView, 1, 0)
        mainLayout.addWidget(chartView, 1, 1)
        mainLayout.setColumnStretch(1, 1)
        mainLayout.setColumnStretch(0, 0)
        self.setLayout(mainLayout)
Beispiel #4
0
    def __init__(self, parent=None):
        super().__init__(parent)

        self.m_model = CustomTableModel()

        tableView = QTableView()
        tableView.setModel(self.m_model)
        tableView.setMinimumWidth(300)
        tableView.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
        tableView.verticalHeader().setSectionResizeMode(QHeaderView.Stretch)
        self.m_model.setParent(tableView)

        chart = QChart()
        chart.setAnimationOptions(QChart.AllAnimations)

        series = QBarSeries()

        first = 3
        count = 5
        mapper = QVBarModelMapper(self)
        mapper.setFirstBarSetColumn(1)
        mapper.setLastBarSetColumn(4)
        mapper.setFirstRow(first)
        mapper.setRowCount(count)
        mapper.setSeries(series)
        mapper.setModel(self.m_model)
        chart.addSeries(series)

        seriesColorHex = "#000000"

        barsets = series.barSets()
        for i, barset in enumerate(barsets):
            seriesColorHex = barset.brush().color().name()
            self.m_model.addMapping(
                seriesColorHex, QRect(1 + i, first, 1, barset.count())
            )

        categories = ("April", "May", "June", "July", "August")
        axisX = QBarCategoryAxis()
        axisX.append(categories)
        chart.addAxis(axisX, Qt.AlignBottom)
        series.attachAxis(axisX)
        axisY = QValueAxis()
        chart.addAxis(axisY, Qt.AlignLeft)
        series.attachAxis(axisY)

        chartView = QChartView(chart)
        chartView.setRenderHint(QPainter.Antialiasing)
        chartView.setMinimumSize(640, 480)

        mainLayout = QGridLayout(self)
        mainLayout.addWidget(tableView, 1, 0)
        mainLayout.addWidget(chartView, 1, 1)
        mainLayout.setColumnStretch(1, 1)
        mainLayout.setColumnStretch(0, 0)
    def __init__(self):
        super().__init__()

        self.m_chart = QChart()

        chart_view = QChartView(self.m_chart)
        chart_view.setMinimumSize(800, 600)

        self.m_series = QLineSeries()
        self.m_chart.addSeries(self.m_series)

        axis_x = QValueAxis()
        axis_x.setRange(0, 2000)
        axis_x.setLabelFormat("%g")
        axis_x.setTitleText("Samples")

        axis_y = QValueAxis()
        axis_y.setRange(-1, 1)
        axis_y.setTitleText("Audio level")

        self.m_chart.setAxisX(axis_x, self.m_series)
        self.m_chart.setAxisY(axis_y, self.m_series)
        self.m_chart.setTitle("Data from the microphone")

        main_layout = QVBoxLayout()
        main_layout.addWidget(chart_view)
        self.setLayout(main_layout)

        format_audio = QAudioFormat()
        format_audio.setSampleRate(48000)
        format_audio.setChannelCount(1)
        format_audio.setSampleSize(8)
        format_audio.setCodec("audio/pcm")
        format_audio.setByteOrder(QAudioFormat.LittleEndian)
        format_audio.setSampleType(QAudioFormat.UnSignedInt)

        input_devices = QAudioDeviceInfo.defaultInputDevice()
        self.m_audio_input = QAudioInput(input_devices, format_audio)

        self.m_device = XYSeriesIODevice(self.m_series)
        self.m_device.open(QIODevice.WriteOnly)

        self.m_audio_input.start(self.m_device)

        self.init_ui()
Beispiel #6
0
class Ui_MultipleAnalayzer(object):
    def setupUi(self, MultipleAnalayzer):
        MultipleAnalayzer.setObjectName("MultipleAnalayzer")
        MultipleAnalayzer.resize(964, 670)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred,
                                           QtWidgets.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            MultipleAnalayzer.sizePolicy().hasHeightForWidth())
        MultipleAnalayzer.setSizePolicy(sizePolicy)
        icon = QtGui.QIcon()
        icon.addPixmap(QtGui.QPixmap(":/images/icon.png"), QtGui.QIcon.Normal,
                       QtGui.QIcon.Off)
        MultipleAnalayzer.setWindowIcon(icon)
        MultipleAnalayzer.setStyleSheet(
            "#lbl_title {\n"
            "font: 75 20pt \"Microsoft YaHei UI\";\n"
            "font-weight: bold;\n"
            "qproperty-alignment: AlignCenter;\n"
            "color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 #3643f7, stop:1 #3643f7);\n"
            "}\n"
            "\n"
            "#btn_homepage {\n"
            "background: transparent;\n"
            "border-radius: 19px;\n"
            "}\n"
            "\n"
            "#btn_homepage::hover {\n"
            "background: #3f72af;\n"
            "}\n"
            "\n"
            "#btn_help {\n"
            "background: transparent;\n"
            "border-radius: 19px;\n"
            "}\n"
            "\n"
            "#btn_help::hover {\n"
            "background: #3f72af;\n"
            "}\n"
            "\n"
            "#btn_tweets_file {\n"
            "font: 75 11pt \"MS Shell Dialog 2\";\n"
            "border-radius: 0px;\n"
            "}\n"
            "\n"
            "#btn_classify,#btn_save {\n"
            "font: 75 11pt \"Microsoft YaHei UI\";\n"
            "font-weight: bold;\n"
            "}\n"
            "#lbl_threshold {\n"
            "font: 75 9pt \"Microsoft YaHei UI\";\n"
            "font-weight: bold;\n"
            "}\n"
            "#spinbox_threshold {\n"
            "font: 75 10pt \"Microsoft YaHei UI\";\n"
            "font-weight: bold;\n"
            "}\n"
            "QPushButton {\n"
            "font: 75 13pt \"Microsoft YaHei UI\";\n"
            "font-weight: bold;\n"
            "border-radius: 9px;\n"
            "border: 1px solid black;\n"
            "background-color: #f0f5f9;\n"
            "}\n"
            "QPushButton::disabled {\n"
            "background-color: #D3D3D3;\n"
            "}\n"
            "QPushButton::hover {\n"
            "background: #c9d6df;\n"
            "}\n"
            "QPushButton:pressed {\n"
            "background: #3f72af;\n"
            "}\n"
            "\n"
            "QProgressBar:horizontal {\n"
            "border: 1px solid gray;\n"
            "border-radius: 3px;\n"
            "background: white;\n"
            "padding: 0px;\n"
            "}\n"
            "QProgressBar::chunk:horizontal {\n"
            "background: qlineargradient(x1: 0, y1: 0,    x2: 0, y2: 1,\n"
            "    stop: 0 #a8ff78, stop: 1 #78ffd6);\n"
            "}\n"
            "\n"
            "QComboBox {\n"
            "font: 75 10.5pt \"Microsoft YaHei UI\";\n"
            "font-weight: bold;\n"
            "color: #1F1F21;\n"
            " border: 1px solid gray;\n"
            " border-radius: 10px;\n"
            " min-width: 6em;\n"
            "padding-left: 8px;\n"
            "qproperty-alignment: AlignCenter;\n"
            "}\n"
            "QComboBox::hover {\n"
            " border: 1px solid blue;\n"
            "background: #f0f5f9;\n"
            "}\n"
            "/* QComboBox gets the \"on\" state when the popup is open */\n"
            "QComboBox:!editable:on, QComboBox::drop-down:editable:on {\n"
            "    color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,\n"
            "                                stop: 0 #D3D3D3, stop: 0.4 #D8D8D8,\n"
            "                                stop: 0.5 #DDDDDD, stop: 1.0 #E1E1E1);\n"
            "}\n"
            "QComboBox:on {\n"
            "    borde-radius: 10px;\n"
            "}\n"
            "\n"
            "QComboBox::drop-down {\n"
            "    subcontrol-origin: padding;\n"
            "    subcontrol-position: top right;\n"
            "    width: 25px;\n"
            "    border-left-width: 1px;\n"
            "    border-left-color: darkgray;\n"
            "    border-left-style: solid; /* just a single line */\n"
            "    border-top-right-radius: 10px; /* same radius as the QComboBox */\n"
            "    border-bottom-right-radius: 10px;\n"
            "}\n"
            "QComboBox QAbstractItemView {\n"
            "    border-radius: 10px;\n"
            "    background: white;\n"
            "    border: 1px solid gray;\n"
            "    box-shadow: transparent;\n"
            "    selection-background-color:lightblue;\n"
            "    color: #1F1F21;\n"
            "}\n"
            "\n"
            "QComboBox::down-arrow {\n"
            "image: url(:/images/arrow_down.png);\n"
            "    width: 15px;\n"
            "    height: 15px;\n"
            "padding-right: 1px;\n"
            "}\n"
            "")
        self.verticalLayout_2 = QtWidgets.QVBoxLayout(MultipleAnalayzer)
        self.verticalLayout_2.setObjectName("verticalLayout_2")
        self.horizontalLayout_11 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_11.setContentsMargins(-1, 0, -1, -1)
        self.horizontalLayout_11.setObjectName("horizontalLayout_11")
        self.btn_homepage = QtWidgets.QToolButton(MultipleAnalayzer)
        self.btn_homepage.setAutoFillBackground(False)
        self.btn_homepage.setText("")
        icon1 = QtGui.QIcon()
        icon1.addPixmap(QtGui.QPixmap(":/images/homepage.png"),
                        QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.btn_homepage.setIcon(icon1)
        self.btn_homepage.setIconSize(QtCore.QSize(35, 35))
        self.btn_homepage.setObjectName("btn_homepage")
        self.horizontalLayout_11.addWidget(self.btn_homepage)
        self.btn_help = QtWidgets.QToolButton(MultipleAnalayzer)
        self.btn_help.setText("")
        icon2 = QtGui.QIcon()
        icon2.addPixmap(QtGui.QPixmap(":/images/help.png"), QtGui.QIcon.Normal,
                        QtGui.QIcon.Off)
        self.btn_help.setIcon(icon2)
        self.btn_help.setIconSize(QtCore.QSize(35, 35))
        self.btn_help.setObjectName("btn_help")
        self.horizontalLayout_11.addWidget(self.btn_help)
        self.lbl_title = QtWidgets.QLabel(MultipleAnalayzer)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum,
                                           QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.lbl_title.sizePolicy().hasHeightForWidth())
        self.lbl_title.setSizePolicy(sizePolicy)
        self.lbl_title.setAlignment(QtCore.Qt.AlignCenter)
        self.lbl_title.setObjectName("lbl_title")
        self.horizontalLayout_11.addWidget(self.lbl_title)
        spacerItem = QtWidgets.QSpacerItem(45, 20, QtWidgets.QSizePolicy.Fixed,
                                           QtWidgets.QSizePolicy.Minimum)
        self.horizontalLayout_11.addItem(spacerItem)
        self.verticalLayout_2.addLayout(self.horizontalLayout_11)
        self.frame = QtWidgets.QFrame(MultipleAnalayzer)
        self.frame.setMinimumSize(QtCore.QSize(700, 0))
        self.frame.setMaximumSize(QtCore.QSize(700, 16777215))
        self.frame.setObjectName("frame")
        self.verticalLayout_8 = QtWidgets.QVBoxLayout(self.frame)
        self.verticalLayout_8.setContentsMargins(1, 16, 1, 14)
        self.verticalLayout_8.setSpacing(9)
        self.verticalLayout_8.setObjectName("verticalLayout_8")
        self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_3.setContentsMargins(-1, 0, -1, -1)
        self.horizontalLayout_3.setObjectName("horizontalLayout_3")
        self.combobox_model = QtWidgets.QComboBox(self.frame)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding,
                                           QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.combobox_model.sizePolicy().hasHeightForWidth())
        self.combobox_model.setSizePolicy(sizePolicy)
        self.combobox_model.setMinimumSize(QtCore.QSize(124, 0))
        self.combobox_model.setMaximumSize(QtCore.QSize(270, 16777215))
        self.combobox_model.setSizeAdjustPolicy(
            QtWidgets.QComboBox.AdjustToContents)
        self.combobox_model.setObjectName("combobox_model")
        self.combobox_model.addItem("")
        self.horizontalLayout_3.addWidget(self.combobox_model)
        self.verticalLayout_8.addLayout(self.horizontalLayout_3)
        self.verticalLayout_2.addWidget(self.frame, 0, QtCore.Qt.AlignHCenter)
        self.groupbox_config = QtWidgets.QGroupBox(MultipleAnalayzer)
        self.groupbox_config.setMinimumSize(QtCore.QSize(700, 0))
        self.groupbox_config.setMaximumSize(QtCore.QSize(700, 16777215))
        self.groupbox_config.setObjectName("groupbox_config")
        self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.groupbox_config)
        self.horizontalLayout_2.setContentsMargins(6, 10, 6, 10)
        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
        self.verticalLayout = QtWidgets.QVBoxLayout()
        self.verticalLayout.setContentsMargins(-1, 0, -1, 0)
        self.verticalLayout.setSpacing(0)
        self.verticalLayout.setObjectName("verticalLayout")
        self.label_2 = QtWidgets.QLabel(self.groupbox_config)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed,
                                           QtWidgets.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.label_2.sizePolicy().hasHeightForWidth())
        self.label_2.setSizePolicy(sizePolicy)
        self.label_2.setObjectName("label_2")
        self.verticalLayout.addWidget(self.label_2)
        self.label = QtWidgets.QLabel(self.groupbox_config)
        self.label.setText("")
        self.label.setObjectName("label")
        self.verticalLayout.addWidget(self.label)
        self.label_7 = QtWidgets.QLabel(self.groupbox_config)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred,
                                           QtWidgets.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.label_7.sizePolicy().hasHeightForWidth())
        self.label_7.setSizePolicy(sizePolicy)
        self.label_7.setObjectName("label_7")
        self.verticalLayout.addWidget(self.label_7)
        self.horizontalLayout_2.addLayout(self.verticalLayout)
        self.verticalLayout_4 = QtWidgets.QVBoxLayout()
        self.verticalLayout_4.setContentsMargins(-1, 4, -1, 2)
        self.verticalLayout_4.setSpacing(12)
        self.verticalLayout_4.setObjectName("verticalLayout_4")
        self.verticalLayout_7 = QtWidgets.QVBoxLayout()
        self.verticalLayout_7.setContentsMargins(-1, 0, -1, 0)
        self.verticalLayout_7.setObjectName("verticalLayout_7")
        self.horizontalLayout = QtWidgets.QHBoxLayout()
        self.horizontalLayout.setContentsMargins(-1, 0, -1, -1)
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.textbox_tweets_file = QtWidgets.QLineEdit(self.groupbox_config)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding,
                                           QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.textbox_tweets_file.sizePolicy().hasHeightForWidth())
        self.textbox_tweets_file.setSizePolicy(sizePolicy)
        self.textbox_tweets_file.setMinimumSize(QtCore.QSize(370, 0))
        self.textbox_tweets_file.setMaximumSize(
            QtCore.QSize(16777215, 16777215))
        self.textbox_tweets_file.setObjectName("textbox_tweets_file")
        self.horizontalLayout.addWidget(self.textbox_tweets_file)
        self.btn_tweets_file = QtWidgets.QPushButton(self.groupbox_config)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed,
                                           QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.btn_tweets_file.sizePolicy().hasHeightForWidth())
        self.btn_tweets_file.setSizePolicy(sizePolicy)
        self.btn_tweets_file.setMinimumSize(QtCore.QSize(32, 18))
        self.btn_tweets_file.setMaximumSize(QtCore.QSize(32, 16777215))
        self.btn_tweets_file.setObjectName("btn_tweets_file")
        self.horizontalLayout.addWidget(self.btn_tweets_file)
        spacerItem1 = QtWidgets.QSpacerItem(40, 20,
                                            QtWidgets.QSizePolicy.Preferred,
                                            QtWidgets.QSizePolicy.Minimum)
        self.horizontalLayout.addItem(spacerItem1)
        self.verticalLayout_7.addLayout(self.horizontalLayout)
        self.checkbox_header = QtWidgets.QCheckBox(self.groupbox_config)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred,
                                           QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.checkbox_header.sizePolicy().hasHeightForWidth())
        self.checkbox_header.setSizePolicy(sizePolicy)
        self.checkbox_header.setChecked(True)
        self.checkbox_header.setObjectName("checkbox_header")
        self.verticalLayout_7.addWidget(self.checkbox_header)
        self.verticalLayout_4.addLayout(self.verticalLayout_7)
        self.horizontalLayout_8 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_8.setContentsMargins(-1, 0, -1, -1)
        self.horizontalLayout_8.setObjectName("horizontalLayout_8")
        self.spinbox_rand_tweets = QtWidgets.QSpinBox(self.groupbox_config)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred,
                                           QtWidgets.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.spinbox_rand_tweets.sizePolicy().hasHeightForWidth())
        self.spinbox_rand_tweets.setSizePolicy(sizePolicy)
        self.spinbox_rand_tweets.setMinimumSize(QtCore.QSize(0, 20))
        self.spinbox_rand_tweets.setMaximumSize(QtCore.QSize(60, 20))
        self.spinbox_rand_tweets.setMinimum(3)
        self.spinbox_rand_tweets.setMaximum(5000)
        self.spinbox_rand_tweets.setProperty("value", 50)
        self.spinbox_rand_tweets.setObjectName("spinbox_rand_tweets")
        self.horizontalLayout_8.addWidget(self.spinbox_rand_tweets)
        spacerItem2 = QtWidgets.QSpacerItem(40, 20,
                                            QtWidgets.QSizePolicy.Expanding,
                                            QtWidgets.QSizePolicy.Minimum)
        self.horizontalLayout_8.addItem(spacerItem2)
        self.verticalLayout_4.addLayout(self.horizontalLayout_8)
        self.horizontalLayout_2.addLayout(self.verticalLayout_4)
        self.verticalLayout_2.addWidget(self.groupbox_config, 0,
                                        QtCore.Qt.AlignHCenter)
        self.frame1 = QtWidgets.QFrame(MultipleAnalayzer)
        self.frame1.setMinimumSize(QtCore.QSize(700, 0))
        self.frame1.setMaximumSize(QtCore.QSize(700, 16777215))
        self.frame1.setObjectName("frame1")
        self.horizontalLayout_4 = QtWidgets.QHBoxLayout(self.frame1)
        self.horizontalLayout_4.setContentsMargins(35, 7, 35, 7)
        self.horizontalLayout_4.setSpacing(34)
        self.horizontalLayout_4.setObjectName("horizontalLayout_4")
        spacerItem3 = QtWidgets.QSpacerItem(40, 20,
                                            QtWidgets.QSizePolicy.Expanding,
                                            QtWidgets.QSizePolicy.Minimum)
        self.horizontalLayout_4.addItem(spacerItem3)
        self.btn_start = QtWidgets.QPushButton(self.frame1)
        self.btn_start.setEnabled(False)
        self.btn_start.setMinimumSize(QtCore.QSize(122, 40))
        self.btn_start.setMaximumSize(QtCore.QSize(16777214, 40))
        icon3 = QtGui.QIcon()
        icon3.addPixmap(QtGui.QPixmap(":/images/predict.png"),
                        QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.btn_start.setIcon(icon3)
        self.btn_start.setIconSize(QtCore.QSize(33, 33))
        self.btn_start.setObjectName("btn_start")
        self.horizontalLayout_4.addWidget(self.btn_start)
        self.btn_stop = QtWidgets.QPushButton(self.frame1)
        self.btn_stop.setEnabled(False)
        self.btn_stop.setMinimumSize(QtCore.QSize(122, 40))
        self.btn_stop.setMaximumSize(QtCore.QSize(16777215, 40))
        icon4 = QtGui.QIcon()
        icon4.addPixmap(QtGui.QPixmap(":/images/stop.png"), QtGui.QIcon.Normal,
                        QtGui.QIcon.Off)
        self.btn_stop.setIcon(icon4)
        self.btn_stop.setIconSize(QtCore.QSize(30, 30))
        self.btn_stop.setObjectName("btn_stop")
        self.horizontalLayout_4.addWidget(self.btn_stop)
        self.btn_save = QtWidgets.QPushButton(self.frame1)
        self.btn_save.setEnabled(False)
        self.btn_save.setMinimumSize(QtCore.QSize(122, 40))
        self.btn_save.setMaximumSize(QtCore.QSize(16777215, 40))
        icon5 = QtGui.QIcon()
        icon5.addPixmap(QtGui.QPixmap(":/images/export_excel.png"),
                        QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.btn_save.setIcon(icon5)
        self.btn_save.setIconSize(QtCore.QSize(27, 27))
        self.btn_save.setObjectName("btn_save")
        self.horizontalLayout_4.addWidget(self.btn_save)
        spacerItem4 = QtWidgets.QSpacerItem(40, 20,
                                            QtWidgets.QSizePolicy.Expanding,
                                            QtWidgets.QSizePolicy.Minimum)
        self.horizontalLayout_4.addItem(spacerItem4)
        self.verticalLayout_2.addWidget(self.frame1, 0, QtCore.Qt.AlignHCenter)
        self.horizontalGroupBox_3 = QtWidgets.QGroupBox(MultipleAnalayzer)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred,
                                           QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.horizontalGroupBox_3.sizePolicy().hasHeightForWidth())
        self.horizontalGroupBox_3.setSizePolicy(sizePolicy)
        self.horizontalGroupBox_3.setMaximumSize(QtCore.QSize(16777215, 300))
        self.horizontalGroupBox_3.setTitle("")
        self.horizontalGroupBox_3.setObjectName("horizontalGroupBox_3")
        self.horizontalLayout_9 = QtWidgets.QHBoxLayout(
            self.horizontalGroupBox_3)
        self.horizontalLayout_9.setContentsMargins(10, 5, 0, 5)
        self.horizontalLayout_9.setSpacing(10)
        self.horizontalLayout_9.setObjectName("horizontalLayout_9")
        self.histogram = QChartView(self.horizontalGroupBox_3)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding,
                                           QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.histogram.sizePolicy().hasHeightForWidth())
        self.histogram.setSizePolicy(sizePolicy)
        self.histogram.setMinimumSize(QtCore.QSize(380, 0))
        self.histogram.setObjectName("histogram")
        self.horizontalLayout_9.addWidget(self.histogram)
        self.piechart = QChartView(self.horizontalGroupBox_3)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding,
                                           QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.piechart.sizePolicy().hasHeightForWidth())
        self.piechart.setSizePolicy(sizePolicy)
        self.piechart.setMinimumSize(QtCore.QSize(270, 270))
        self.piechart.setMaximumSize(QtCore.QSize(350, 16777215))
        self.piechart.setObjectName("piechart")
        self.horizontalLayout_9.addWidget(self.piechart)
        self.verticalLayout_5 = QtWidgets.QVBoxLayout()
        self.verticalLayout_5.setContentsMargins(-1, 0, 0, 0)
        self.verticalLayout_5.setObjectName("verticalLayout_5")
        self.verticalFrame_3 = QtWidgets.QFrame(self.horizontalGroupBox_3)
        self.verticalFrame_3.setObjectName("verticalFrame_3")
        self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.verticalFrame_3)
        self.verticalLayout_3.setContentsMargins(1, 0, 0, -1)
        self.verticalLayout_3.setSpacing(9)
        self.verticalLayout_3.setObjectName("verticalLayout_3")
        self.groupbox_threshold = QtWidgets.QGroupBox(self.verticalFrame_3)
        self.groupbox_threshold.setEnabled(False)
        self.groupbox_threshold.setMinimumSize(QtCore.QSize(100, 0))
        self.groupbox_threshold.setMaximumSize(QtCore.QSize(90, 16777215))
        self.groupbox_threshold.setObjectName("groupbox_threshold")
        self.verticalLayout_6 = QtWidgets.QVBoxLayout(self.groupbox_threshold)
        self.verticalLayout_6.setContentsMargins(0, 5, 0, 10)
        self.verticalLayout_6.setSpacing(0)
        self.verticalLayout_6.setObjectName("verticalLayout_6")
        self.horizontalLayout_10 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_10.setContentsMargins(-1, 0, -1, -1)
        self.horizontalLayout_10.setObjectName("horizontalLayout_10")
        self.lbl_threshold = QtWidgets.QLabel(self.groupbox_threshold)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed,
                                           QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.lbl_threshold.sizePolicy().hasHeightForWidth())
        self.lbl_threshold.setSizePolicy(sizePolicy)
        self.lbl_threshold.setObjectName("lbl_threshold")
        self.horizontalLayout_10.addWidget(self.lbl_threshold)
        self.verticalLayout_6.addLayout(self.horizontalLayout_10)
        self.spinbox_threshold = QtWidgets.QDoubleSpinBox(
            self.groupbox_threshold)
        self.spinbox_threshold.setMinimumSize(QtCore.QSize(50, 22))
        self.spinbox_threshold.setMaximumSize(QtCore.QSize(50, 22))
        font = QtGui.QFont()
        font.setFamily("Microsoft YaHei UI")
        font.setPointSize(10)
        font.setBold(True)
        font.setItalic(False)
        font.setWeight(75)
        self.spinbox_threshold.setFont(font)
        self.spinbox_threshold.setSpecialValueText("")
        self.spinbox_threshold.setDecimals(1)
        self.spinbox_threshold.setMinimum(0.1)
        self.spinbox_threshold.setMaximum(1.0)
        self.spinbox_threshold.setSingleStep(0.1)
        self.spinbox_threshold.setProperty("value", 0.5)
        self.spinbox_threshold.setObjectName("spinbox_threshold")
        self.verticalLayout_6.addWidget(self.spinbox_threshold, 0,
                                        QtCore.Qt.AlignHCenter)
        self.verticalLayout_13 = QtWidgets.QVBoxLayout()
        self.verticalLayout_13.setContentsMargins(-1, 10, -1, -1)
        self.verticalLayout_13.setObjectName("verticalLayout_13")
        self.btn_classify = QtWidgets.QPushButton(self.groupbox_threshold)
        self.btn_classify.setEnabled(False)
        self.btn_classify.setMinimumSize(QtCore.QSize(80, 28))
        self.btn_classify.setMaximumSize(QtCore.QSize(80, 28))
        self.btn_classify.setIconSize(QtCore.QSize(25, 25))
        self.btn_classify.setObjectName("btn_classify")
        self.verticalLayout_13.addWidget(self.btn_classify, 0,
                                         QtCore.Qt.AlignHCenter)
        self.verticalLayout_6.addLayout(self.verticalLayout_13)
        self.verticalLayout_3.addWidget(self.groupbox_threshold)
        self.verticalLayout_5.addWidget(self.verticalFrame_3)
        spacerItem5 = QtWidgets.QSpacerItem(20, 31,
                                            QtWidgets.QSizePolicy.Minimum,
                                            QtWidgets.QSizePolicy.Expanding)
        self.verticalLayout_5.addItem(spacerItem5)
        self.horizontalLayout_9.addLayout(self.verticalLayout_5)
        self.verticalLayout_2.addWidget(self.horizontalGroupBox_3)
        self.horizontalLayout_5 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_5.setContentsMargins(14, 8, 14, 0)
        self.horizontalLayout_5.setSpacing(6)
        self.horizontalLayout_5.setObjectName("horizontalLayout_5")
        self.verticalLayout_10 = QtWidgets.QVBoxLayout()
        self.verticalLayout_10.setContentsMargins(-1, -1, -1, 0)
        self.verticalLayout_10.setObjectName("verticalLayout_10")
        self.label_13 = QtWidgets.QLabel(MultipleAnalayzer)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed,
                                           QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.label_13.sizePolicy().hasHeightForWidth())
        self.label_13.setSizePolicy(sizePolicy)
        self.label_13.setObjectName("label_13")
        self.verticalLayout_10.addWidget(self.label_13)
        self.label_12 = QtWidgets.QLabel(MultipleAnalayzer)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed,
                                           QtWidgets.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.label_12.sizePolicy().hasHeightForWidth())
        self.label_12.setSizePolicy(sizePolicy)
        self.label_12.setObjectName("label_12")
        self.verticalLayout_10.addWidget(self.label_12)
        self.horizontalLayout_5.addLayout(self.verticalLayout_10)
        self.verticalLayout_11 = QtWidgets.QVBoxLayout()
        self.verticalLayout_11.setObjectName("verticalLayout_11")
        self.progressbar_tweets = QtWidgets.QProgressBar(MultipleAnalayzer)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding,
                                           QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.progressbar_tweets.sizePolicy().hasHeightForWidth())
        self.progressbar_tweets.setSizePolicy(sizePolicy)
        self.progressbar_tweets.setMinimumSize(QtCore.QSize(0, 17))
        self.progressbar_tweets.setMaximumSize(QtCore.QSize(16777215, 17))
        self.progressbar_tweets.setMinimum(0)
        self.progressbar_tweets.setMaximum(100)
        self.progressbar_tweets.setProperty("value", 0)
        self.progressbar_tweets.setAlignment(QtCore.Qt.AlignCenter)
        self.progressbar_tweets.setTextDirection(
            QtWidgets.QProgressBar.TopToBottom)
        self.progressbar_tweets.setObjectName("progressbar_tweets")
        self.verticalLayout_11.addWidget(self.progressbar_tweets)
        self.progressbar_batch = QtWidgets.QProgressBar(MultipleAnalayzer)
        self.progressbar_batch.setMinimumSize(QtCore.QSize(0, 17))
        self.progressbar_batch.setMaximumSize(QtCore.QSize(16777215, 17))
        self.progressbar_batch.setProperty("value", 0)
        self.progressbar_batch.setAlignment(QtCore.Qt.AlignCenter)
        self.progressbar_batch.setObjectName("progressbar_batch")
        self.verticalLayout_11.addWidget(self.progressbar_batch)
        self.horizontalLayout_5.addLayout(self.verticalLayout_11)
        self.verticalLayout_2.addLayout(self.horizontalLayout_5)

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

    def retranslateUi(self, MultipleAnalayzer):
        _translate = QtCore.QCoreApplication.translate
        MultipleAnalayzer.setWindowTitle(
            _translate("MultipleAnalayzer", "Multiple Tweets Analyzer"))
        self.btn_homepage.setToolTip(
            _translate("MultipleAnalayzer", "Back To HomePage"))
        self.btn_help.setToolTip(
            _translate("MultipleAnalayzer", "Open Help Documentation"))
        self.lbl_title.setText(
            _translate("MultipleAnalayzer", "Multiple Tweets Analyzer"))
        self.combobox_model.setItemText(
            0, _translate("MultipleAnalayzer", "Select Model"))
        self.groupbox_config.setTitle(
            _translate("MultipleAnalayzer", "Input Configuration"))
        self.label_2.setText(_translate("MultipleAnalayzer", "Tweets File:"))
        self.label_7.setText(_translate("MultipleAnalayzer", "Random Tweets:"))
        self.btn_tweets_file.setText(_translate("MultipleAnalayzer", "..."))
        self.checkbox_header.setText(
            _translate("MultipleAnalayzer", "Include Header"))
        self.btn_start.setText(_translate("MultipleAnalayzer", "Predict"))
        self.btn_stop.setText(_translate("MultipleAnalayzer", "Stop"))
        self.btn_save.setText(_translate("MultipleAnalayzer", "Export"))
        self.lbl_threshold.setText(
            _translate("MultipleAnalayzer", "Threshold:"))
        self.btn_classify.setText(_translate("MultipleAnalayzer", "Update"))
        self.label_13.setText(_translate("MultipleAnalayzer", "Tweets"))
        self.label_12.setText(_translate("MultipleAnalayzer", "Batch"))
Beispiel #7
0
class MainChartWidget(QDialog):

    # w_type_charts = None
    # w_chart_line = None
    # w_chart_pie = None
    # w_chart_bar = None
    # w_chart = None
    #
    # v_layout_main = None
    # h_layout_middle = None
    #
    # selector = None

    signal_confirm_chart = pyqtSignal(QChart)

    def __init__(self):
        super(MainChartWidget, self).__init__()

        self.w_type_charts = None
        self.w_chart_line = None
        self.w_chart_pie = None
        self.w_chart_bar = None
        self.w_chart = None

        self.v_layout_main = None
        self.h_layout_middle = None

        self.selector = None
        self.init_ui()

    def init_ui(self):
        self.setFixedSize(700, 600)
        self.assemble()
        self.set_styles()
        self.aux = QPoint(200, 300)
        self.setWindowFlags(Qt.FramelessWindowHint)
        # self.setAttribute(Qt.WA_TranslucentBackground)

    def mousePressEvent(self, event):
        self.oldPos = event.globalPos()
        self._from_x = event.pos().x()
        self._from_y = event.pos().y()
        # self.start = event.pos()

    def mouseMoveEvent(self, event):
        delta = QPoint(event.globalPos() - self.oldPos)
        self.aux = QPoint(self.x() + delta.x(), self.y() + delta.y())
        self.move(self.aux)
        self.oldPos = event.globalPos()

        self._to_x = event.pos().x()
        self._to_y = event.pos().y()

        self.global_pos = event.globalPos()

        self._from_x = self._to_x
        self._from_y = self._to_y

    def set_styles(self):
        self.setStyleSheet("""
        MainChartWidget{
            border-radius: 4px;
            background:rgb(37,43,52,220);
            color: white;
        }
        QScrollArea{
                background-color:transparent;
                border-radius: 4px;
                border: 0px solid ;
                border-color: rgb(0,0,0,100)
            }

            QScrollBar:vertical{
                border:1px solid;
                border-color: rgb(197,197,199,100);
                width: 7px;
                margin: 0px 0px 0px 0px;
                background: rgb(234,234,234,100);

            }

            QScrollBar::handle:vertical  {
                background: rgba(14,65,148,100);
            }

            QScrollBar::add-line:vertical{
                height: 0px;
            }

            QScrollBar::sub-line:vertical{
                height: 0px;
            }
        """)

    def assemble(self):

        self.w_type_charts = TopBar(self)
        self.w_type_charts.signal_send_chart_selected.connect(
            self.set_chart_type)
        self.w_type_charts.setMinimumSize(650, 50)
        self.w_type_charts.setMaximumHeight(50)

        self.w_chart_line = LeftBarLineChart(self)
        self.w_chart_line.setMinimumSize(200, 300)
        self.w_chart_line.setMaximumWidth(200)

        self.w_chart_pie = LeftBarPieChart(self)
        self.w_chart_pie.hide()
        self.w_chart_pie.setMinimumSize(200, 300)
        self.w_chart_pie.setMaximumWidth(200)

        self.w_chart_bar = LeftBarBarChart(self)
        self.w_chart_bar.hide()
        self.w_chart_bar.setMinimumSize(200, 300)
        self.w_chart_bar.setMaximumWidth(200)

        self.w_chart = QChartView()
        self.w_chart.setChart(self.w_chart_line.chart)
        self.w_chart.setMinimumSize(400, 300)

        self.v_layout_main = QVBoxLayout()
        self.v_layout_main.setContentsMargins(20, 20, 20, 20)
        self.h_layout_middle = QHBoxLayout()
        self.v_layout_main.addWidget(self.w_type_charts)
        self.v_layout_main.addLayout(self.h_layout_middle)
        self.h_layout_middle.addWidget(self.w_chart_line)
        self.h_layout_middle.addWidget(self.w_chart_pie)
        self.h_layout_middle.addWidget(self.w_chart_bar)
        self.h_layout_middle.addWidget(self.w_chart)

        self.setLayout(self.v_layout_main)
        self.w_type_charts.btn_chart_line_clicked()

    @pyqtSlot(int)
    def set_chart_type(self, type):
        self.w_chart_line.hide()
        self.w_chart_pie.hide()
        self.w_chart_bar.hide()
        self.selector = type
        if type == EChart.LINE:
            self.w_chart_line.show()
            self.w_chart.setChart(self.w_chart_line.chart)
        elif type == EChart.PIE:
            self.w_chart_pie.show()
            self.w_chart.setChart(self.w_chart_pie.chart)
        elif type == EChart.BAR:
            self.w_chart_bar.show()
            self.w_chart.setChart(self.w_chart_bar.chart)

    def confirm_chart(self):
        self.signal_confirm_chart.emit(self.w_chart.chart())
        # KEYBOARD.close()

    def hide(self):
        # KEYBOARD.close()
        super(MainChartWidget, self).hide()
Beispiel #8
0
class GraphicsScene(QGraphicsScene):
    def __init__(self):
        super(GraphicsScene, self).__init__()

        self.line_series = QLineSeries()
        self.chart = QChart()
        self.chart_view = QChartView(self.chart)
        self.chart_view.setMinimumSize(640, 480)

        self.model = ItemModel()
        self.model.signal_update_models.connect(self.update_axes)

        self.table_view = TableView()

        self.table_view.setModel(self.model)
        self.table_view.horizontalHeader().setSectionResizeMode(
            QHeaderView.Stretch)
        self.table_view.verticalHeader().setSectionResizeMode(
            QHeaderView.Stretch)

        self.chart.setAnimationOptions(QChart.AllAnimations)
        self.chart.setAnimationDuration(2000)

        self.line_series.setName("Line 1")

        self.mapper = QVXYModelMapper(self)
        self.mapper.setXColumn(0)
        self.mapper.setYColumn(1)
        self.mapper.setSeries(self.line_series)
        self.mapper.setModel(self.model)
        self.chart.addSeries(self.line_series)

        seriesColorHex = self.line_series.pen().color().name()
        self.model.add_mapping(seriesColorHex,
                               QRect(0, 0, 2, self.model.rowCount()))

        self.line_series2 = QLineSeries()
        self.line_series2.setName("Line 2")

        self.mapper2 = QVXYModelMapper(self)
        self.mapper2.setXColumn(2)
        self.mapper2.setYColumn(3)
        self.mapper2.setSeries(self.line_series2)
        self.mapper2.setModel(self.model)
        self.chart.addSeries(self.line_series2)

        seriesColorHex = self.line_series2.pen().color().name()
        self.model.add_mapping(seriesColorHex,
                               QRect(2, 0, 2, self.model.rowCount()))

        self.chart.createDefaultAxes()

        self.chart_view.setRenderHint(QPainter.Antialiasing)
        self.chart.resize(500, 400)
        self.chart.setFlag(QGraphicsItem.ItemIsMovable)
        self.chart.setFlag(QGraphicsItem.ItemIsSelectable)
        self.addItem(self.chart)

    @pyqtSlot()
    def update_axes(self):
        self.chart.removeSeries(self.line_series)
        self.chart.removeSeries(self.line_series2)
        self.chart.addSeries(self.line_series)
        self.chart.addSeries(self.line_series2)
        self.chart.createDefaultAxes()
    def init_ui(self):
        main_layout = QVBoxLayout()

        # Drag&Drop area
        drag_drop = DragDropArea(parent=self)
        main_layout.addWidget(drag_drop)

        # Chart layout
        chart_layout_1 = QHBoxLayout()
        chart_layout_2 = QHBoxLayout()

        # Chart 1
        chart_view_1 = QChartView(self.m_chart_1)
        chart_view_1.setMinimumSize(400, 300)

        self.m_chart_1.addSeries(self.m_series_1)

        pen = self.m_series_1.pen()
        pen.setColor(Qt.red)
        pen.setWidthF(.1)
        self.m_series_1.setPen(pen)
        self.m_series_1.setUseOpenGL(True)

        axis_x = QValueAxis()
        axis_x.setRange(0, 100)
        axis_x.setLabelFormat("%g")
        axis_x.setTitleText("Samples")

        axis_y = QValueAxis()
        axis_y.setRange(-10, 10)
        axis_y.setTitleText("Audio level")

        self.m_chart_1.setAxisX(axis_x, self.m_series_1)
        self.m_chart_1.setAxisY(axis_y, self.m_series_1)
        self.m_chart_1.setTitle("Original signal time domain")

        chart_layout_1.addWidget(chart_view_1)

        # Chart 2
        chart_view_2 = QChartView(self.m_chart_2)
        chart_view_2.setMinimumSize(400, 300)

        self.m_chart_2.setTitle("Original signal frequency domain")

        pen = self.m_series_2.pen()
        pen.setColor(Qt.blue)
        pen.setWidthF(.1)
        self.m_series_2.setPen(pen)
        self.m_series_2.setUseOpenGL(True)

        self.m_chart_2.addSeries(self.m_series_2)

        chart_layout_1.addWidget(chart_view_2)

        # Chart 3
        chart_view_3 = QChartView(self.m_chart_3)
        chart_view_3.setMinimumSize(400, 300)

        self.m_chart_3.addSeries(self.m_series_3)

        pen = self.m_series_3.pen()
        pen.setColor(Qt.green)
        pen.setWidthF(.1)
        self.m_series_3.setPen(pen)
        self.m_series_3.setUseOpenGL(True)

        axis_x = QValueAxis()
        axis_x.setRange(0, 100)
        axis_x.setLabelFormat("%g")
        axis_x.setTitleText("Samples")

        axis_y = QValueAxis()
        axis_y.setRange(-10, 10)
        axis_y.setTitleText("Audio level")

        self.m_chart_3.setAxisX(axis_x, self.m_series_3)
        self.m_chart_3.setAxisY(axis_y, self.m_series_3)
        self.m_chart_3.setTitle("Processed signal time domain")

        chart_layout_2.addWidget(chart_view_3)

        # Chart 4
        chart_view_4 = QChartView(self.m_chart_4)
        chart_view_4.setMinimumSize(400, 300)

        self.m_chart_4.setTitle("Processed signal frequency domain")

        pen = self.m_series_4.pen()
        pen.setColor(Qt.magenta)
        pen.setWidthF(.1)
        self.m_series_4.setPen(pen)
        self.m_series_4.setUseOpenGL(True)

        self.m_chart_4.addSeries(self.m_series_4)

        chart_layout_2.addWidget(chart_view_4)

        main_layout.addLayout(chart_layout_1)
        main_layout.addLayout(chart_layout_2)

        # Action buttons
        player_layout = QHBoxLayout()

        self.select_action_drop.addItems([
            "Add noise", "Filter", "Mute equipment", "Mute vocal", "Add echo",
            "Filter echo"
        ])

        player_layout.addWidget(self.select_action_drop)

        noise_jc = QIcon('rate_ic.png')
        noise_btn = QPushButton('Process')
        noise_btn.setIcon(noise_jc)
        noise_btn.clicked.connect(self.on_action)

        player_layout.addWidget(noise_btn)

        play_jc = QIcon('play_ic.png')
        play_orig_btn = QPushButton('Play Original')
        play_orig_btn.setIcon(play_jc)
        play_orig_btn.clicked.connect(self.on_play_orig)

        player_layout.addWidget(play_orig_btn)

        play_jc = QIcon('play_ic.png')
        play_btn = QPushButton('Play Processed')
        play_btn.setIcon(play_jc)
        play_btn.clicked.connect(self.on_play)

        player_layout.addWidget(play_btn)

        stop_jc = QIcon('stop_ic.png')
        stop_btn = QPushButton('Stop')
        stop_btn.setIcon(stop_jc)
        stop_btn.clicked.connect(self.on_stop)

        player_layout.addWidget(stop_btn)

        main_layout.addLayout(player_layout)

        self.setLayout(main_layout)
class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(800, 640)
        MainWindow.setMinimumSize(QtCore.QSize(800, 640))
        MainWindow.setMaximumSize(QtCore.QSize(800, 640))
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.gridLayout = QtWidgets.QGridLayout(self.centralwidget)
        self.gridLayout.setObjectName("gridLayout")
        self.main_frame = QtWidgets.QFrame(self.centralwidget)
        self.main_frame.setObjectName("main_frame")
        self.gridLayout_7 = QtWidgets.QGridLayout(self.main_frame)
        self.gridLayout_7.setObjectName("gridLayout_7")
        self.stripchart = QChartView(self.main_frame)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.stripchart.sizePolicy().hasHeightForWidth())
        self.stripchart.setSizePolicy(sizePolicy)
        self.stripchart.setMinimumSize(QtCore.QSize(100, 0))
        self.stripchart.setObjectName("stripchart")
        self.gridLayout_7.addWidget(self.stripchart, 0, 1, 3, 1)
        self.groupBox = QtWidgets.QGroupBox(self.main_frame)
        font = QtGui.QFont()
        font.setFamily("Iosevka Aile")
        self.groupBox.setFont(font)
        self.groupBox.setObjectName("groupBox")
        self.gridLayout_5 = QtWidgets.QGridLayout(self.groupBox)
        self.gridLayout_5.setObjectName("gridLayout_5")
        self.message_label = QtWidgets.QLabel(self.groupBox)
        font = QtGui.QFont()
        font.setFamily("Iosevka Aile")
        font.setPointSize(20)
        self.message_label.setFont(font)
        self.message_label.setObjectName("message_label")
        self.gridLayout_5.addWidget(self.message_label, 0, 0, 1, 1)
        self.progressBar = QtWidgets.QProgressBar(self.groupBox)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.progressBar.sizePolicy().hasHeightForWidth())
        self.progressBar.setSizePolicy(sizePolicy)
        font = QtGui.QFont()
        font.setFamily("Iosevka Aile")
        self.progressBar.setFont(font)
        self.progressBar.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter)
        self.progressBar.setInvertedAppearance(False)
        self.progressBar.setObjectName("progressBar")
        self.gridLayout_5.addWidget(self.progressBar, 1, 0, 1, 1)
        self.gridLayout_7.addWidget(self.groupBox, 0, 0, 1, 1)
        self.stripchart_control_group = QtWidgets.QGroupBox(self.main_frame)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.stripchart_control_group.sizePolicy().hasHeightForWidth())
        self.stripchart_control_group.setSizePolicy(sizePolicy)
        font = QtGui.QFont()
        font.setFamily("Iosevka Aile")
        self.stripchart_control_group.setFont(font)
        self.stripchart_control_group.setObjectName("stripchart_control_group")
        self.gridLayout_4 = QtWidgets.QGridLayout(self.stripchart_control_group)
        self.gridLayout_4.setObjectName("gridLayout_4")
        self.frame_2 = QtWidgets.QFrame(self.stripchart_control_group)
        self.frame_2.setObjectName("frame_2")
        self.gridLayout_3 = QtWidgets.QGridLayout(self.frame_2)
        self.gridLayout_3.setContentsMargins(-1, 0, -1, 0)
        self.gridLayout_3.setObjectName("gridLayout_3")
        self.stripchart_slower_label = QtWidgets.QLabel(self.frame_2)
        font = QtGui.QFont()
        font.setFamily("Iosevka Aile")
        self.stripchart_slower_label.setFont(font)
        self.stripchart_slower_label.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter)
        self.stripchart_slower_label.setObjectName("stripchart_slower_label")
        self.gridLayout_3.addWidget(self.stripchart_slower_label, 0, 0, 1, 1)
        self.stripchart_speed_slider = QtWidgets.QSlider(self.frame_2)
        self.stripchart_speed_slider.setMaximum(6)
        self.stripchart_speed_slider.setProperty("value", 3)
        self.stripchart_speed_slider.setOrientation(QtCore.Qt.Horizontal)
        self.stripchart_speed_slider.setTickPosition(QtWidgets.QSlider.TicksBothSides)
        self.stripchart_speed_slider.setTickInterval(1)
        self.stripchart_speed_slider.setObjectName("stripchart_speed_slider")
        self.gridLayout_3.addWidget(self.stripchart_speed_slider, 0, 1, 1, 1)
        self.stripchart_faster_label = QtWidgets.QLabel(self.frame_2)
        font = QtGui.QFont()
        font.setFamily("Iosevka Aile")
        self.stripchart_faster_label.setFont(font)
        self.stripchart_faster_label.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter)
        self.stripchart_faster_label.setObjectName("stripchart_faster_label")
        self.gridLayout_3.addWidget(self.stripchart_faster_label, 0, 2, 1, 1)
        self.gridLayout_4.addWidget(self.frame_2, 0, 0, 1, 4)
        self.frame = QtWidgets.QFrame(self.stripchart_control_group)
        self.frame.setObjectName("frame")
        self.horizontalLayout = QtWidgets.QHBoxLayout(self.frame)
        self.horizontalLayout.setContentsMargins(0, 0, 0, 0)
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.chart_clear_button = QtWidgets.QPushButton(self.frame)
        font = QtGui.QFont()
        font.setFamily("Iosevka Aile")
        self.chart_clear_button.setFont(font)
        self.chart_clear_button.setObjectName("chart_clear_button")
        self.horizontalLayout.addWidget(self.chart_clear_button)
        self.chart_legacy_button = QtWidgets.QPushButton(self.frame)
        font = QtGui.QFont()
        font.setFamily("Iosevka Aile")
        self.chart_legacy_button.setFont(font)
        self.chart_legacy_button.setObjectName("chart_legacy_button")
        self.horizontalLayout.addWidget(self.chart_legacy_button)
        self.gridLayout_4.addWidget(self.frame, 3, 0, 1, 4)
        self.gridLayout_7.addWidget(self.stripchart_control_group, 2, 0, 1, 1)
        self.data_display_group = QtWidgets.QGroupBox(self.main_frame)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.data_display_group.sizePolicy().hasHeightForWidth())
        self.data_display_group.setSizePolicy(sizePolicy)
        font = QtGui.QFont()
        font.setFamily("Iosevka Aile")
        self.data_display_group.setFont(font)
        self.data_display_group.setObjectName("data_display_group")
        self.gridLayout_2 = QtWidgets.QGridLayout(self.data_display_group)
        self.gridLayout_2.setObjectName("gridLayout_2")
        self.dec_label = QtWidgets.QLabel(self.data_display_group)
        font = QtGui.QFont()
        font.setFamily("Iosevka Aile")
        font.setPointSize(22)
        self.dec_label.setFont(font)
        self.dec_label.setObjectName("dec_label")
        self.gridLayout_2.addWidget(self.dec_label, 2, 0, 1, 1)
        self.channelB_label = QtWidgets.QLabel(self.data_display_group)
        font = QtGui.QFont()
        font.setFamily("Iosevka Aile")
        font.setPointSize(22)
        self.channelB_label.setFont(font)
        self.channelB_label.setObjectName("channelB_label")
        self.gridLayout_2.addWidget(self.channelB_label, 5, 0, 1, 1)
        self.dec_value = QtWidgets.QLabel(self.data_display_group)
        font = QtGui.QFont()
        font.setFamily("Iosevka Aile")
        font.setPointSize(22)
        font.setBold(True)
        font.setWeight(75)
        self.dec_value.setFont(font)
        self.dec_value.setScaledContents(False)
        self.dec_value.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
        self.dec_value.setObjectName("dec_value")
        self.gridLayout_2.addWidget(self.dec_value, 2, 1, 1, 1)
        self.channelA_value = QtWidgets.QLabel(self.data_display_group)
        palette = QtGui.QPalette()
        brush = QtGui.QBrush(QtGui.QColor(33, 150, 243))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.WindowText, brush)
        brush = QtGui.QBrush(QtGui.QColor(33, 150, 243))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Text, brush)
        brush = QtGui.QBrush(QtGui.QColor(33, 150, 243))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.WindowText, brush)
        brush = QtGui.QBrush(QtGui.QColor(33, 150, 243))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Text, brush)
        brush = QtGui.QBrush(QtGui.QColor(127, 127, 127))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.WindowText, brush)
        brush = QtGui.QBrush(QtGui.QColor(127, 127, 127))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Text, brush)
        self.channelA_value.setPalette(palette)
        font = QtGui.QFont()
        font.setFamily("Iosevka Aile")
        font.setPointSize(22)
        font.setBold(True)
        font.setWeight(75)
        self.channelA_value.setFont(font)
        self.channelA_value.setScaledContents(False)
        self.channelA_value.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
        self.channelA_value.setObjectName("channelA_value")
        self.gridLayout_2.addWidget(self.channelA_value, 3, 1, 1, 1)
        self.channelA_label = QtWidgets.QLabel(self.data_display_group)
        font = QtGui.QFont()
        font.setFamily("Iosevka Aile")
        font.setPointSize(22)
        self.channelA_label.setFont(font)
        self.channelA_label.setObjectName("channelA_label")
        self.gridLayout_2.addWidget(self.channelA_label, 3, 0, 1, 1)
        self.ra_value = QtWidgets.QLabel(self.data_display_group)
        font = QtGui.QFont()
        font.setFamily("Iosevka Aile")
        font.setPointSize(22)
        font.setBold(True)
        font.setWeight(75)
        self.ra_value.setFont(font)
        self.ra_value.setScaledContents(False)
        self.ra_value.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
        self.ra_value.setObjectName("ra_value")
        self.gridLayout_2.addWidget(self.ra_value, 1, 1, 1, 1)
        self.channelB_value = QtWidgets.QLabel(self.data_display_group)
        palette = QtGui.QPalette()
        brush = QtGui.QBrush(QtGui.QColor(255, 82, 82))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.WindowText, brush)
        brush = QtGui.QBrush(QtGui.QColor(255, 82, 82))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Text, brush)
        brush = QtGui.QBrush(QtGui.QColor(255, 82, 82))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.WindowText, brush)
        brush = QtGui.QBrush(QtGui.QColor(255, 82, 82))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Text, brush)
        brush = QtGui.QBrush(QtGui.QColor(127, 127, 127))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.WindowText, brush)
        brush = QtGui.QBrush(QtGui.QColor(127, 127, 127))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Text, brush)
        self.channelB_value.setPalette(palette)
        font = QtGui.QFont()
        font.setFamily("Iosevka Aile")
        font.setPointSize(22)
        font.setBold(True)
        font.setWeight(75)
        self.channelB_value.setFont(font)
        self.channelB_value.setScaledContents(False)
        self.channelB_value.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
        self.channelB_value.setObjectName("channelB_value")
        self.gridLayout_2.addWidget(self.channelB_value, 5, 1, 1, 1)
        self.ra_label = QtWidgets.QLabel(self.data_display_group)
        font = QtGui.QFont()
        font.setFamily("Iosevka Aile")
        font.setPointSize(22)
        self.ra_label.setFont(font)
        self.ra_label.setObjectName("ra_label")
        self.gridLayout_2.addWidget(self.ra_label, 1, 0, 1, 1)
        self.gridLayout_7.addWidget(self.data_display_group, 1, 0, 1, 1)
        self.gridLayout.addWidget(self.main_frame, 0, 0, 1, 1)
        self.testing_frame = QtWidgets.QFrame(self.centralwidget)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Maximum)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.testing_frame.sizePolicy().hasHeightForWidth())
        self.testing_frame.setSizePolicy(sizePolicy)
        self.testing_frame.setMinimumSize(QtCore.QSize(0, 180))
        self.testing_frame.setObjectName("testing_frame")
        self.gridLayout_8 = QtWidgets.QGridLayout(self.testing_frame)
        self.gridLayout_8.setContentsMargins(-1, 0, -1, -1)
        self.gridLayout_8.setObjectName("gridLayout_8")
        self.dec_group_box = QtWidgets.QGroupBox(self.testing_frame)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.dec_group_box.sizePolicy().hasHeightForWidth())
        self.dec_group_box.setSizePolicy(sizePolicy)
        font = QtGui.QFont()
        font.setFamily("Iosevka Aile")
        self.dec_group_box.setFont(font)
        self.dec_group_box.setObjectName("dec_group_box")
        self.gridLayout_9 = QtWidgets.QGridLayout(self.dec_group_box)
        self.gridLayout_9.setObjectName("gridLayout_9")
        self.declination_slider = QtWidgets.QSlider(self.dec_group_box)
        font = QtGui.QFont()
        font.setFamily("Iosevka Aile")
        self.declination_slider.setFont(font)
        self.declination_slider.setMinimum(-25)
        self.declination_slider.setMaximum(95)
        self.declination_slider.setSingleStep(5)
        self.declination_slider.setObjectName("declination_slider")
        self.gridLayout_9.addWidget(self.declination_slider, 0, 0, 2, 1)
        self.north_label = QtWidgets.QLabel(self.dec_group_box)
        font = QtGui.QFont()
        font.setFamily("Iosevka Aile")
        self.north_label.setFont(font)
        self.north_label.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop)
        self.north_label.setObjectName("north_label")
        self.gridLayout_9.addWidget(self.north_label, 0, 1, 1, 1)
        self.south_label = QtWidgets.QLabel(self.dec_group_box)
        font = QtGui.QFont()
        font.setFamily("Iosevka Aile")
        self.south_label.setFont(font)
        self.south_label.setAlignment(QtCore.Qt.AlignBottom|QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft)
        self.south_label.setObjectName("south_label")
        self.gridLayout_9.addWidget(self.south_label, 1, 1, 1, 1)
        self.gridLayout_8.addWidget(self.dec_group_box, 0, 1, 1, 1)
        self.signal_group_box = QtWidgets.QGroupBox(self.testing_frame)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Maximum)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.signal_group_box.sizePolicy().hasHeightForWidth())
        self.signal_group_box.setSizePolicy(sizePolicy)
        font = QtGui.QFont()
        font.setFamily("Iosevka Aile")
        self.signal_group_box.setFont(font)
        self.signal_group_box.setObjectName("signal_group_box")
        self.gridLayout_6 = QtWidgets.QGridLayout(self.signal_group_box)
        self.gridLayout_6.setObjectName("gridLayout_6")
        self.variance_dial = QtWidgets.QDial(self.signal_group_box)
        font = QtGui.QFont()
        font.setFamily("Iosevka Aile")
        self.variance_dial.setFont(font)
        self.variance_dial.setMinimum(0)
        self.variance_dial.setMaximum(16)
        self.variance_dial.setPageStep(4)
        self.variance_dial.setProperty("value", 4)
        self.variance_dial.setWrapping(False)
        self.variance_dial.setNotchTarget(1.0)
        self.variance_dial.setNotchesVisible(True)
        self.variance_dial.setObjectName("variance_dial")
        self.gridLayout_6.addWidget(self.variance_dial, 1, 0, 1, 1)
        self.variance_label = QtWidgets.QLabel(self.signal_group_box)
        font = QtGui.QFont()
        font.setFamily("Iosevka Aile")
        self.variance_label.setFont(font)
        self.variance_label.setAlignment(QtCore.Qt.AlignCenter)
        self.variance_label.setObjectName("variance_label")
        self.gridLayout_6.addWidget(self.variance_label, 0, 0, 1, 1)
        self.polarization_label = QtWidgets.QLabel(self.signal_group_box)
        font = QtGui.QFont()
        font.setFamily("Iosevka Aile")
        self.polarization_label.setFont(font)
        self.polarization_label.setAlignment(QtCore.Qt.AlignCenter)
        self.polarization_label.setObjectName("polarization_label")
        self.gridLayout_6.addWidget(self.polarization_label, 0, 1, 1, 1)
        self.noise_label = QtWidgets.QLabel(self.signal_group_box)
        font = QtGui.QFont()
        font.setFamily("Iosevka Aile")
        self.noise_label.setFont(font)
        self.noise_label.setAlignment(QtCore.Qt.AlignCenter)
        self.noise_label.setObjectName("noise_label")
        self.gridLayout_6.addWidget(self.noise_label, 0, 3, 1, 1)
        self.polarization_dial = QtWidgets.QDial(self.signal_group_box)
        font = QtGui.QFont()
        font.setFamily("Iosevka Aile")
        self.polarization_dial.setFont(font)
        self.polarization_dial.setMinimum(0)
        self.polarization_dial.setMaximum(16)
        self.polarization_dial.setPageStep(4)
        self.polarization_dial.setProperty("value", 4)
        self.polarization_dial.setWrapping(False)
        self.polarization_dial.setNotchTarget(1.0)
        self.polarization_dial.setNotchesVisible(True)
        self.polarization_dial.setObjectName("polarization_dial")
        self.gridLayout_6.addWidget(self.polarization_dial, 1, 1, 1, 1)
        self.noise_dial = QtWidgets.QDial(self.signal_group_box)
        font = QtGui.QFont()
        font.setFamily("Iosevka Aile")
        self.noise_dial.setFont(font)
        self.noise_dial.setMinimum(0)
        self.noise_dial.setMaximum(16)
        self.noise_dial.setPageStep(4)
        self.noise_dial.setProperty("value", 4)
        self.noise_dial.setWrapping(False)
        self.noise_dial.setNotchTarget(1.0)
        self.noise_dial.setNotchesVisible(True)
        self.noise_dial.setObjectName("noise_dial")
        self.gridLayout_6.addWidget(self.noise_dial, 1, 3, 1, 1)
        self.gridLayout_8.addWidget(self.signal_group_box, 0, 0, 1, 1)
        self.gridLayout.addWidget(self.testing_frame, 1, 0, 1, 1)
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 22))
        font = QtGui.QFont()
        font.setFamily("Iosevka Aile")
        self.menubar.setFont(font)
        self.menubar.setObjectName("menubar")
        self.menuCalibration = QtWidgets.QMenu(self.menubar)
        self.menuCalibration.setObjectName("menuCalibration")
        self.menuFile = QtWidgets.QMenu(self.menubar)
        self.menuFile.setObjectName("menuFile")
        self.menuNew = QtWidgets.QMenu(self.menuFile)
        self.menuNew.setObjectName("menuNew")
        self.menuMode = QtWidgets.QMenu(self.menubar)
        self.menuMode.setObjectName("menuMode")
        MainWindow.setMenuBar(self.menubar)
        self.actionRA = QtWidgets.QAction(MainWindow)
        self.actionRA.setObjectName("actionRA")
        self.actionDec = QtWidgets.QAction(MainWindow)
        self.actionDec.setObjectName("actionDec")
        self.actionSurvey = QtWidgets.QAction(MainWindow)
        self.actionSurvey.setObjectName("actionSurvey")
        self.actionInfo = QtWidgets.QAction(MainWindow)
        self.actionInfo.setObjectName("actionInfo")
        self.actionQuit = QtWidgets.QAction(MainWindow)
        self.actionQuit.setObjectName("actionQuit")
        self.actionHelp = QtWidgets.QAction(MainWindow)
        self.actionHelp.setEnabled(False)
        self.actionHelp.setObjectName("actionHelp")
        self.actionScan = QtWidgets.QAction(MainWindow)
        self.actionScan.setObjectName("actionScan")
        self.actionSpectrum = QtWidgets.QAction(MainWindow)
        self.actionSpectrum.setObjectName("actionSpectrum")
        self.actionNormal = QtWidgets.QAction(MainWindow)
        self.actionNormal.setCheckable(True)
        self.actionNormal.setObjectName("actionNormal")
        self.actionTesting = QtWidgets.QAction(MainWindow)
        self.actionTesting.setCheckable(True)
        self.actionTesting.setObjectName("actionTesting")
        self.actionLegacy = QtWidgets.QAction(MainWindow)
        self.actionLegacy.setCheckable(True)
        self.actionLegacy.setObjectName("actionLegacy")
        self.menuCalibration.addAction(self.actionRA)
        self.menuCalibration.addAction(self.actionDec)
        self.menuNew.addAction(self.actionSurvey)
        self.menuNew.addAction(self.actionScan)
        self.menuNew.addAction(self.actionSpectrum)
        self.menuFile.addAction(self.menuNew.menuAction())
        self.menuFile.addSeparator()
        self.menuFile.addAction(self.actionHelp)
        self.menuFile.addAction(self.actionInfo)
        self.menuFile.addSeparator()
        self.menuFile.addAction(self.actionQuit)
        self.menuMode.addAction(self.actionNormal)
        self.menuMode.addAction(self.actionLegacy)
        self.menuMode.addAction(self.actionTesting)
        self.menubar.addAction(self.menuFile.menuAction())
        self.menubar.addAction(self.menuCalibration.menuAction())
        self.menubar.addAction(self.menuMode.menuAction())

        self.retranslateUi(MainWindow)
        self.actionQuit.triggered.connect(MainWindow.close)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.groupBox.setTitle(_translate("MainWindow", "Info"))
        self.message_label.setText(_translate("MainWindow", "..."))
        self.stripchart_control_group.setTitle(_translate("MainWindow", "Strip chart"))
        self.stripchart_slower_label.setText(_translate("MainWindow", "Slower"))
        self.stripchart_faster_label.setText(_translate("MainWindow", "Faster"))
        self.chart_clear_button.setText(_translate("MainWindow", "Clear chart"))
        self.chart_legacy_button.setText(_translate("MainWindow", "Legacy Mode"))
        self.data_display_group.setTitle(_translate("MainWindow", "Data"))
        self.dec_label.setText(_translate("MainWindow", "Declination:"))
        self.channelB_label.setText(_translate("MainWindow", "Channel B voltage:"))
        self.dec_value.setText(_translate("MainWindow", "0.0deg"))
        self.channelA_value.setText(_translate("MainWindow", "0.00V"))
        self.channelA_label.setText(_translate("MainWindow", "Channel A voltage:"))
        self.ra_value.setText(_translate("MainWindow", "00:00:00"))
        self.channelB_value.setText(_translate("MainWindow", "0.00V"))
        self.ra_label.setText(_translate("MainWindow", "Right Ascension:"))
        self.dec_group_box.setTitle(_translate("MainWindow", "Declination"))
        self.north_label.setText(_translate("MainWindow", "North"))
        self.south_label.setText(_translate("MainWindow", "South"))
        self.signal_group_box.setTitle(_translate("MainWindow", "Signal"))
        self.variance_label.setText(_translate("MainWindow", "Variance"))
        self.polarization_label.setText(_translate("MainWindow", "Polarization"))
        self.noise_label.setText(_translate("MainWindow", "Interference"))
        self.menuCalibration.setTitle(_translate("MainWindow", "Calibrate"))
        self.menuFile.setTitle(_translate("MainWindow", "File"))
        self.menuNew.setTitle(_translate("MainWindow", "New"))
        self.menuMode.setTitle(_translate("MainWindow", "Mode"))
        self.actionRA.setText(_translate("MainWindow", "RA..."))
        self.actionDec.setText(_translate("MainWindow", "Dec..."))
        self.actionSurvey.setText(_translate("MainWindow", "Survey"))
        self.actionSurvey.setShortcut(_translate("MainWindow", "Ctrl+1"))
        self.actionInfo.setText(_translate("MainWindow", "Credits..."))
        self.actionQuit.setText(_translate("MainWindow", "Exit"))
        self.actionHelp.setText(_translate("MainWindow", "Help..."))
        self.actionScan.setText(_translate("MainWindow", "Scan"))
        self.actionScan.setShortcut(_translate("MainWindow", "Ctrl+2"))
        self.actionSpectrum.setText(_translate("MainWindow", "Spectrum"))
        self.actionSpectrum.setShortcut(_translate("MainWindow", "Ctrl+3"))
        self.actionNormal.setText(_translate("MainWindow", "Normal"))
        self.actionNormal.setShortcut(_translate("MainWindow", "Ctrl+N"))
        self.actionTesting.setText(_translate("MainWindow", "Testing"))
        self.actionTesting.setShortcut(_translate("MainWindow", "Ctrl+T"))
        self.actionLegacy.setText(_translate("MainWindow", "Legacy"))
        self.actionLegacy.setShortcut(_translate("MainWindow", "Ctrl+Z"))
Beispiel #11
0
class Ui_Dialog(object):
    def setupUi(self, Dialog):
        Dialog.setObjectName("Dialog")
        Dialog.resize(333, 504)
        Dialog.setStyleSheet(
            "\n"
            "QWidget {\n"
            "    background-color:rgb(0, 0, 0);\n"
            "    color: rgb(240, 240, 240);\n"
            "    border-color: rgb(58, 58, 58);\n"
            "}\n"
            "\n"
            "QPlainTextEdit {\n"
            "    background-color:rgb(0, 0, 0);\n"
            "    color: rgb(200, 200, 200);\n"
            "    selection-background-color: rgb(255, 153, 0);\n"
            "    selection-color: rgb(0, 0, 0);\n"
            "}\n"
            "\n"
            "QTabWidget::pane {\n"
            "        border-top: 1px solid #000000;\n"
            "}\n"
            "\n"
            "QTabBar::tab {\n"
            "     background-color:rgb(0, 0, 0);\n"
            "     border-style: outset;\n"
            "    border-width: 1px;\n"
            "    border-right-color: qlineargradient(spread:pad, x1:0.4, y1:0.5, x2:0.6, y2:0.5, stop:0 rgba(115, 115, 115, 255), stop:1 rgba(62, 62, 62, 255));\n"
            "    border-left-color: qlineargradient(spread:pad, x1:0.6, y1:0.5, x2:0.4, y2:0.5, stop:0 rgba(115, 115, 115, 255), stop:1 rgba(62, 62, 62, 255));\n"
            "  border-bottom-color: rgb(58, 58, 58);\n"
            "    border-bottom-width: 1px;\n"
            "    border-top-width: 0px;\n"
            "    border-style: solid;\n"
            "    color: rgb(255, 153, 0);\n"
            "    padding: 4px;\n"
            "}\n"
            "\n"
            "QTabBar::tab:selected, QTabBar::tab:hover {\n"
            "   color: rgb(255, 255, 255);\n"
            "   background-color:rgb(0, 0, 0);\n"
            "   border-color:rgb(42, 42, 42);\n"
            "   margin-left: 0px;\n"
            "   margin-right: 0px;\n"
            "   border-bottom-right-radius:4px;\n"
            "   border-bottom-left-radius:4px;\n"
            "}\n"
            "\n"
            "QTabBar::tab:last:selected {\n"
            "  background-color:rgb(0, 0, 0);\n"
            "    border-color:rgb(42, 42, 42);\n"
            "    margin-left: 0px;\n"
            "      margin-right: 0px;\n"
            "    border-bottom-right-radius:4px;\n"
            "    border-bottom-left-radius:4px;\n"
            "}\n"
            "\n"
            "QTabBar::tab:!selected {\n"
            "   margin-bottom: 4px;\n"
            "   border-bottom-right-radius:4px;\n"
            "   border-bottom-left-radius:4px;\n"
            "}\n"
            "\n"
            "QPushButton{\n"
            "    border-style: outset;\n"
            "    border-width: 2px;\n"
            "    border-top-color: qlineargradient(spread:pad, x1:0.5, y1:0.6, x2:0.5, y2:0.4, stop:0 rgba(115, 115, 115, 255), stop:1 rgba(62, 62, 62, 255));\n"
            "    border-right-color: qlineargradient(spread:pad, x1:0.4, y1:0.5, x2:0.6, y2:0.5, stop:0 rgba(115, 115, 115, 255), stop:1 rgba(62, 62, 62, 255));\n"
            "    border-left-color: qlineargradient(spread:pad, x1:0.6, y1:0.5, x2:0.4, y2:0.5, stop:0 rgba(115, 115, 115, 255), stop:1 rgba(62, 62, 62, 255));\n"
            "    border-bottom-color: rgb(58, 58, 58);\n"
            "    border-bottom-width: 1px;\n"
            "    border-style: solid;\n"
            "    color: rgb(255, 255, 255);\n"
            "    padding: 6px;\n"
            "    background-color: qlineargradient(spread:pad, x1:0.5, y1:1, x2:0.5, y2:0, stop:0 rgba(77, 77, 77, 255), stop:1 rgba(97, 97, 97, 255));\n"
            "}\n"
            "\n"
            "QPushButton:hover{\n"
            "    border-style: outset;\n"
            "    border-width: 2px;\n"
            "    border-top-color: qlineargradient(spread:pad, x1:0.5, y1:0.6, x2:0.5, y2:0.4, stop:0 rgba(180, 180, 180, 255), stop:1 rgba(110, 110, 110, 255));\n"
            "    border-right-color: qlineargradient(spread:pad, x1:0.4, y1:0.5, x2:0.6, y2:0.5, stop:0 rgba(180, 180, 180, 255), stop:1 rgba(110, 110, 110, 255));\n"
            "    border-left-color: qlineargradient(spread:pad, x1:0.6, y1:0.5, x2:0.4, y2:0.5, stop:0 rgba(180, 180, 180, 255), stop:1 rgba(110, 110, 110, 255));\n"
            "    border-bottom-color: rgb(115, 115, 115);\n"
            "    border-bottom-width: 1px;\n"
            "    border-style: solid;\n"
            "    color: rgb(255, 255, 255);\n"
            "    padding: 6px;\n"
            "    background-color: qlineargradient(spread:pad, x1:0.5, y1:1, x2:0.5, y2:0, stop:0 rgba(107, 107, 107, 255), stop:1 rgba(157, 157, 157, 255));\n"
            "}\n"
            "\n"
            "QPushButton:pressed{\n"
            "    border-style: outset;\n"
            "    border-width: 2px;\n"
            "    border-top-color: qlineargradient(spread:pad, x1:0.5, y1:0.6, x2:0.5, y2:0.4, stop:0 rgba(62, 62, 62, 255), stop:1 rgba(22, 22, 22, 255));\n"
            "    border-right-color: qlineargradient(spread:pad, x1:0.4, y1:0.5, x2:0.6, y2:0.5, stop:0 rgba(115, 115, 115, 255), stop:1 rgba(62, 62, 62, 255));\n"
            "    border-left-color: qlineargradient(spread:pad, x1:0.6, y1:0.5, x2:0.4, y2:0.5, stop:0 rgba(115, 115, 115, 255), stop:1 rgba(62, 62, 62, 255));\n"
            "    border-bottom-color: rgb(58, 58, 58);\n"
            "    border-bottom-width: 1px;\n"
            "    border-style: solid;\n"
            "    color: rgb(255, 255, 255);\n"
            "    padding: 6px;\n"
            "    background-color: qlineargradient(spread:pad, x1:0.5, y1:1, x2:0.5, y2:0, stop:0 rgba(77, 77, 77, 255), stop:1 rgba(97, 97, 97, 255));\n"
            "}\n"
            "\n"
            "QPushButton:disabled{\n"
            "    border-style: outset;\n"
            "    border-width: 2px;\n"
            "    border-top-color: qlineargradient(spread:pad, x1:0.5, y1:0.6, x2:0.5, y2:0.4, stop:0 rgba(115, 115, 115, 255), stop:1 rgba(62, 62, 62, 255));\n"
            "    border-right-color: qlineargradient(spread:pad, x1:0.4, y1:0.5, x2:0.6, y2:0.5, stop:0 rgba(115, 115, 115, 255), stop:1 rgba(62, 62, 62, 255));\n"
            "    border-left-color: qlineargradient(spread:pad, x1:0.6, y1:0.5, x2:0.4, y2:0.5, stop:0 rgba(115, 115, 115, 255), stop:1 rgba(62, 62, 62, 255));\n"
            "    border-bottom-color: rgb(58, 58, 58);\n"
            "    border-bottom-width: 1px;\n"
            "    border-style: solid;\n"
            "    color: rgb(0, 0, 0);\n"
            "    padding: 6px;\n"
            "    background-color: qlineargradient(spread:pad, x1:0.5, y1:1, x2:0.5, y2:0, stop:0 rgba(57, 57, 57, 255), stop:1 rgba(77, 77, 77, 255));\n"
            "}\n"
            "\n"
            "QLineEdit {\n"
            "    border-width: 1px; border-radius: 4px;\n"
            "    border-color: rgb(58, 58, 58);\n"
            "    border-style: inset;\n"
            "    padding: 0 8px;\n"
            "    color: rgb(255, 255, 255);\n"
            "    background:rgb(101, 101, 101);\n"
            "    selection-background-color: rgb(187, 187, 187);\n"
            "    selection-color: rgb(60, 63, 65);\n"
            "}\n"
            "\n"
            "QProgressBar {\n"
            "    text-align: center;\n"
            "    color: rgb(255, 255, 255);\n"
            "    border-width: 1px; \n"
            "    border-radius: 10px;\n"
            "    border-color: rgb(58, 58, 58);\n"
            "    border-style: inset;\n"
            "}\n"
            "\n"
            "QProgressBar::chunk {\n"
            "    background-color: qlineargradient(spread:pad, x1:0.5, y1:0.7, x2:0.5, y2:0.3, stop:0 rgba(0, 200, 0, 255), stop:1 rgba(30, 230, 30, 255));\n"
            "    border-radius: 10px;\n"
            "}\n"
            "\n"
            "QMenuBar {\n"
            "    background:rgb(0, 0, 0);\n"
            "    color: rgb(255, 153, 0);\n"
            "}\n"
            "\n"
            "QMenuBar::item {\n"
            "      spacing: 3px; \n"
            "    padding: 1px 4px;\n"
            "      background: transparent;\n"
            "}\n"
            "\n"
            "QMenuBar::item:selected { \n"
            "      background:rgb(115, 115, 115);\n"
            "}\n"
            "\n"
            "QMenu {\n"
            "    border-width: 2px; \n"
            "    border-radius: 10px;\n"
            "    border-color: rgb(255, 153, 0);\n"
            "    border-style: outset;\n"
            "}\n"
            "\n"
            "QMenu::item {\n"
            "    spacing: 3px; \n"
            "    padding: 3px 15px;\n"
            "}\n"
            "\n"
            "QMenu::item:selected {\n"
            "    spacing: 3px; \n"
            "    padding: 3px 15px;\n"
            "    background:rgb(115, 115, 115);\n"
            "    color:rgb(255, 255, 255);\n"
            "    border-width: 1px; \n"
            "    border-radius: 10px;\n"
            "    border-color: rgb(58, 58, 58);\n"
            "    border-style: inset;\n"
            "}\n"
            "\n"
            "QLabel, QComboBox{\n"
            "    font-size: 26px;\n"
            "    border: 2px solid green;\n"
            "    border-radius: 4px;\n"
            "    padding: 2px;\n"
            "}\n"
            "\n"
            "QLCDNumber{\n"
            "    border: 2px solid green;\n"
            "    border-radius: 4px;\n"
            "}\n"
            "")
        self.verticalLayout = QtWidgets.QVBoxLayout(Dialog)
        self.verticalLayout.setObjectName("verticalLayout")
        self.title = QtWidgets.QLabel(Dialog)
        self.title.setAlignment(QtCore.Qt.AlignCenter)
        self.title.setWordWrap(False)
        self.title.setObjectName("title")
        self.verticalLayout.addWidget(self.title)
        self.gridLayout = QtWidgets.QGridLayout()
        self.gridLayout.setObjectName("gridLayout")
        self.total_confirmed_num = QtWidgets.QLCDNumber(Dialog)
        self.total_confirmed_num.setDigitCount(9)
        self.total_confirmed_num.setObjectName("total_confirmed_num")
        self.gridLayout.addWidget(self.total_confirmed_num, 0, 1, 1, 1)
        self.total_deaths_num = QtWidgets.QLCDNumber(Dialog)
        self.total_deaths_num.setDigitCount(9)
        self.total_deaths_num.setObjectName("total_deaths_num")
        self.gridLayout.addWidget(self.total_deaths_num, 1, 1, 1, 1)
        self.total_deaths = QtWidgets.QLabel(Dialog)
        self.total_deaths.setObjectName("total_deaths")
        self.gridLayout.addWidget(self.total_deaths, 1, 0, 1, 1)
        self.total_recovered = QtWidgets.QLabel(Dialog)
        self.total_recovered.setObjectName("total_recovered")
        self.gridLayout.addWidget(self.total_recovered, 3, 0, 1, 1)
        self.total_confirmed = QtWidgets.QLabel(Dialog)
        self.total_confirmed.setObjectName("total_confirmed")
        self.gridLayout.addWidget(self.total_confirmed, 0, 0, 1, 1)
        self.total_recovered_num = QtWidgets.QLCDNumber(Dialog)
        self.total_recovered_num.setDigitCount(9)
        self.total_recovered_num.setObjectName("total_recovered_num")
        self.gridLayout.addWidget(self.total_recovered_num, 3, 1, 1, 1)
        self.total_active = QtWidgets.QLabel(Dialog)
        self.total_active.setObjectName("total_active")
        self.gridLayout.addWidget(self.total_active, 4, 0, 1, 1)
        self.total_active_num = QtWidgets.QLCDNumber(Dialog)
        self.total_active_num.setDigitCount(9)
        self.total_active_num.setObjectName("total_active_num")
        self.gridLayout.addWidget(self.total_active_num, 4, 1, 1, 1)
        self.verticalLayout.addLayout(self.gridLayout)
        self.comboBox = QtWidgets.QComboBox(Dialog)
        self.comboBox.setObjectName("comboBox")
        self.verticalLayout.addWidget(self.comboBox)
        self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
        self.confirmed_button = QtWidgets.QPushButton(Dialog)
        self.confirmed_button.setCursor(QtGui.QCursor(QtCore.Qt.ArrowCursor))
        self.confirmed_button.setObjectName("confirmed_button")
        self.horizontalLayout_2.addWidget(self.confirmed_button)
        self.deaths_button = QtWidgets.QPushButton(Dialog)
        self.deaths_button.setObjectName("deaths_button")
        self.horizontalLayout_2.addWidget(self.deaths_button)
        self.recovered_button = QtWidgets.QPushButton(Dialog)
        self.recovered_button.setObjectName("recovered_button")
        self.horizontalLayout_2.addWidget(self.recovered_button)
        self.active_button = QtWidgets.QPushButton(Dialog)
        self.active_button.setObjectName("active_button")
        self.horizontalLayout_2.addWidget(self.active_button)
        self.verticalLayout.addLayout(self.horizontalLayout_2)
        self.graphicsView = QChartView(Dialog)
        self.graphicsView.setMinimumSize(QtCore.QSize(0, 0))
        self.graphicsView.setObjectName("graphicsView")
        self.verticalLayout.addWidget(self.graphicsView)

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

    def retranslateUi(self, Dialog):
        _translate = QtCore.QCoreApplication.translate
        Dialog.setWindowTitle(_translate("Dialog", "QtCorona"))
        self.title.setText(_translate("Dialog", "Global Corona Status"))
        self.total_deaths.setText(_translate("Dialog", "Total Deaths"))
        self.total_recovered.setText(_translate("Dialog", "Total Recovered"))
        self.total_confirmed.setText(_translate("Dialog", "Total Confirmed"))
        self.total_active.setText(_translate("Dialog", "Total Active"))
        self.confirmed_button.setText(_translate("Dialog", "Confirmed"))
        self.deaths_button.setText(_translate("Dialog", "Deaths"))
        self.recovered_button.setText(_translate("Dialog", "Recovered"))
        self.active_button.setText(_translate("Dialog", "Actives"))
Beispiel #12
0
class MainWindow(QMainWindow):

    def __init__(self):
        super(MainWindow, self).__init__()
        self.init_ui()

    def init_ui(self):



        self.line_series = QLineSeries()
        self.chart = QChart()
        self.chart_view = QChartView(self.chart)
        self.chart_view.setMinimumSize(640,480)

        self.model = ItemModel()
        self.model.signal_update_models.connect(self.update_axes)

        self.table_view = TableView()

        self.table_view.setModel(self.model)
        self.table_view.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
        self.table_view.verticalHeader().setSectionResizeMode(QHeaderView.Stretch)

        self.chart.setAnimationOptions(QChart.AllAnimations)
        self.chart.setAnimationDuration(2000)

        self.line_series.setName("Line 1")

        self.mapper = QVXYModelMapper(self)
        self.mapper.setXColumn(0)
        self.mapper.setYColumn(1)
        self.mapper.setSeries(self.line_series)
        self.mapper.setModel(self.model)
        self.chart.addSeries(self.line_series)

        seriesColorHex = self.line_series.pen().color().name()
        self.model.add_mapping(seriesColorHex,
                               QRect(0,0,2, self.model.rowCount()))

        self.line_series2 = QLineSeries()
        self.line_series2.setName("Line 2")

        self.mapper2 = QVXYModelMapper(self)
        self.mapper2.setXColumn(2)
        self.mapper2.setYColumn(3)
        self.mapper2.setSeries(self.line_series2)
        self.mapper2.setModel(self.model)
        self.chart.addSeries(self.line_series2)


        seriesColorHex = self.line_series2.pen().color().name()
        self.model.add_mapping(seriesColorHex,
                               QRect(2, 0, 2, self.model.rowCount()))

        self.chart.createDefaultAxes()

        self.grid = QGridLayout()
        self.grid.addWidget(self.table_view,0,0)
        self.grid.addWidget(self.chart_view,0,1)

        self.chart_view.setRenderHint(QPainter.Antialiasing)
        self.cw = QWidget()
        self.cw.setLayout(self.grid)
        self.setCentralWidget(self.cw)
        self.resize(400,300)

    @pyqtSlot()
    def update_axes(self):
        self.chart.removeSeries(self.line_series)
        self.chart.removeSeries(self.line_series2)
        self.chart.addSeries(self.line_series)
        self.chart.addSeries(self.line_series2)
        self.chart.createDefaultAxes()
Beispiel #13
0
class Ui_Monitor(object):
    def setupUi(self, Monitor):
        Monitor.setObjectName("Monitor")
        Monitor.resize(1132, 595)
        Monitor.setMinimumSize(QtCore.QSize(1132, 595))
        self.gridLayout_2 = QtWidgets.QGridLayout(Monitor)
        self.gridLayout_2.setObjectName("gridLayout_2")
        self.label = QtWidgets.QLabel(Monitor)
        self.label.setMinimumSize(QtCore.QSize(1091, 41))
        self.label.setAlignment(QtCore.Qt.AlignCenter)
        self.label.setObjectName("label")
        self.gridLayout_2.addWidget(self.label, 0, 0, 1, 2)
        self.graphicsView = QChartView(Monitor)
        self.graphicsView.setMinimumSize(QtCore.QSize(761, 481))
        self.graphicsView.setObjectName("graphicsView")
        self.gridLayout_2.addWidget(self.graphicsView, 1, 0, 1, 1)
        self.gridLayout = QtWidgets.QGridLayout()
        self.gridLayout.setObjectName("gridLayout")
        self.label_2 = QtWidgets.QLabel(Monitor)
        self.label_2.setMinimumSize(QtCore.QSize(91, 30))
        self.label_2.setObjectName("label_2")
        self.gridLayout.addWidget(self.label_2, 0, 0, 1, 1)
        self.comboBox = QtWidgets.QComboBox(Monitor)
        self.comboBox.setMinimumSize(QtCore.QSize(91, 30))
        self.comboBox.setObjectName("comboBox")
        self.gridLayout.addWidget(self.comboBox, 0, 1, 1, 1)
        spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
        self.gridLayout.addItem(spacerItem, 0, 2, 1, 1)
        self.label_3 = QtWidgets.QLabel(Monitor)
        self.label_3.setMinimumSize(QtCore.QSize(91, 30))
        self.label_3.setObjectName("label_3")
        self.gridLayout.addWidget(self.label_3, 1, 0, 1, 1)
        self.lineEdit = QtWidgets.QLineEdit(Monitor)
        self.lineEdit.setMinimumSize(QtCore.QSize(191, 30))
        self.lineEdit.setObjectName("lineEdit")
        self.gridLayout.addWidget(self.lineEdit, 1, 1, 1, 2)
        spacerItem1 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
        self.gridLayout.addItem(spacerItem1, 2, 1, 1, 1)
        self.label_4 = QtWidgets.QLabel(Monitor)
        self.label_4.setMinimumSize(QtCore.QSize(301, 161))
        self.label_4.setObjectName("label_4")
        self.gridLayout.addWidget(self.label_4, 3, 0, 1, 3)
        self.pushButton = QtWidgets.QPushButton(Monitor)
        self.pushButton.setMinimumSize(QtCore.QSize(91, 41))
        self.pushButton.setObjectName("pushButton")
        self.gridLayout.addWidget(self.pushButton, 4, 0, 1, 1)
        self.pushButton_2 = QtWidgets.QPushButton(Monitor)
        self.pushButton_2.setMinimumSize(QtCore.QSize(91, 41))
        self.pushButton_2.setObjectName("pushButton_2")
        self.gridLayout.addWidget(self.pushButton_2, 4, 1, 1, 1)
        spacerItem2 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
        self.gridLayout.addItem(spacerItem2, 4, 2, 1, 1)
        self.gridLayout_2.addLayout(self.gridLayout, 1, 1, 1, 1)

        self.retranslateUi(Monitor)
        self.comboBox.currentIndexChanged['int'].connect(Monitor.iface_changed)
        self.lineEdit.returnPressed.connect(Monitor.filter_changed)
        self.pushButton.clicked.connect(Monitor.start_on_clicked)
        self.pushButton_2.clicked.connect(Monitor.clear_on_clicked)
        QtCore.QMetaObject.connectSlotsByName(Monitor)

    def retranslateUi(self, Monitor):
        _translate = QtCore.QCoreApplication.translate
        Monitor.setWindowTitle(_translate("Monitor", "Dialog"))
        self.label.setText(_translate("Monitor", "TextLabel"))
        self.label_2.setText(_translate("Monitor", "网络接口"))
        self.label_3.setText(_translate("Monitor", "过滤器"))
        self.label_4.setText(_translate("Monitor", "TextLabel"))
        self.pushButton.setText(_translate("Monitor", "start"))
        self.pushButton_2.setText(_translate("Monitor", "clear"))
Beispiel #14
0
class Ui_Dialog(object):
    def setupUi(self, Dialog):
        Dialog.setObjectName("Dialog")
        Dialog.resize(564, 676)
        self.gridLayout_2 = QtWidgets.QGridLayout(Dialog)
        self.gridLayout_2.setObjectName("gridLayout_2")
        self.advancedPlotWidget = QChartView(Dialog)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.MinimumExpanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.advancedPlotWidget.sizePolicy().hasHeightForWidth())
        self.advancedPlotWidget.setSizePolicy(sizePolicy)
        self.advancedPlotWidget.setMinimumSize(QtCore.QSize(500, 400))
        self.advancedPlotWidget.setObjectName("advancedPlotWidget")
        self.gridLayout_2.addWidget(self.advancedPlotWidget, 0, 0, 1, 3)
        self.groupBox = QtWidgets.QGroupBox(Dialog)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.groupBox.sizePolicy().hasHeightForWidth())
        self.groupBox.setSizePolicy(sizePolicy)
        self.groupBox.setObjectName("groupBox")
        self.gridLayout = QtWidgets.QGridLayout(self.groupBox)
        self.gridLayout.setObjectName("gridLayout")
        self.label = QtWidgets.QLabel(self.groupBox)
        self.label.setObjectName("label")
        self.gridLayout.addWidget(self.label, 0, 0, 1, 1)
        self.shortCircuitCurrentBox = QtWidgets.QDoubleSpinBox(self.groupBox)
        self.shortCircuitCurrentBox.setObjectName("shortCircuitCurrentBox")
        self.gridLayout.addWidget(self.shortCircuitCurrentBox, 0, 1, 1, 1)
        self.label_6 = QtWidgets.QLabel(self.groupBox)
        self.label_6.setObjectName("label_6")
        self.gridLayout.addWidget(self.label_6, 0, 2, 1, 1)
        self.nonIdealityBox = QtWidgets.QDoubleSpinBox(self.groupBox)
        self.nonIdealityBox.setObjectName("nonIdealityBox")
        self.gridLayout.addWidget(self.nonIdealityBox, 0, 3, 1, 1)
        self.label_2 = QtWidgets.QLabel(self.groupBox)
        self.label_2.setObjectName("label_2")
        self.gridLayout.addWidget(self.label_2, 1, 0, 1, 1)
        self.openCircuitVoltageBox = QtWidgets.QDoubleSpinBox(self.groupBox)
        self.openCircuitVoltageBox.setObjectName("openCircuitVoltageBox")
        self.gridLayout.addWidget(self.openCircuitVoltageBox, 1, 1, 2, 1)
        self.label_7 = QtWidgets.QLabel(self.groupBox)
        self.label_7.setObjectName("label_7")
        self.gridLayout.addWidget(self.label_7, 1, 2, 1, 1)
        self.rShuntBox = QtWidgets.QDoubleSpinBox(self.groupBox)
        self.rShuntBox.setObjectName("rShuntBox")
        self.gridLayout.addWidget(self.rShuntBox, 1, 3, 1, 1)
        self.label_8 = QtWidgets.QLabel(self.groupBox)
        self.label_8.setObjectName("label_8")
        self.gridLayout.addWidget(self.label_8, 2, 2, 2, 1)
        self.label_3 = QtWidgets.QLabel(self.groupBox)
        self.label_3.setObjectName("label_3")
        self.gridLayout.addWidget(self.label_3, 3, 0, 1, 1)
        self.maxPowerPointBox = QtWidgets.QDoubleSpinBox(self.groupBox)
        self.maxPowerPointBox.setObjectName("maxPowerPointBox")
        self.gridLayout.addWidget(self.maxPowerPointBox, 3, 1, 1, 1)
        self.rSeriesBox = QtWidgets.QDoubleSpinBox(self.groupBox)
        self.rSeriesBox.setObjectName("rSeriesBox")
        self.gridLayout.addWidget(self.rSeriesBox, 3, 3, 1, 1)
        self.label_4 = QtWidgets.QLabel(self.groupBox)
        self.label_4.setObjectName("label_4")
        self.gridLayout.addWidget(self.label_4, 4, 0, 1, 1)
        self.fillFactorBox = QtWidgets.QDoubleSpinBox(self.groupBox)
        self.fillFactorBox.setObjectName("fillFactorBox")
        self.gridLayout.addWidget(self.fillFactorBox, 4, 1, 1, 1)
        self.label_5 = QtWidgets.QLabel(self.groupBox)
        self.label_5.setObjectName("label_5")
        self.gridLayout.addWidget(self.label_5, 5, 0, 1, 1)
        self.efficiencyBox = QtWidgets.QDoubleSpinBox(self.groupBox)
        self.efficiencyBox.setObjectName("efficiencyBox")
        self.gridLayout.addWidget(self.efficiencyBox, 5, 1, 1, 1)
        self.gridLayout_2.addWidget(self.groupBox, 1, 0, 1, 3)
        self.savePNGButton = QtWidgets.QPushButton(Dialog)
        self.savePNGButton.setObjectName("savePNGButton")
        self.gridLayout_2.addWidget(self.savePNGButton, 2, 0, 1, 1)
        spacerItem = QtWidgets.QSpacerItem(328, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
        self.gridLayout_2.addItem(spacerItem, 2, 1, 1, 1)
        self.closeButton = QtWidgets.QPushButton(Dialog)
        self.closeButton.setObjectName("closeButton")
        self.gridLayout_2.addWidget(self.closeButton, 2, 2, 1, 1)

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

    def retranslateUi(self, Dialog):
        _translate = QtCore.QCoreApplication.translate
        Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
        self.groupBox.setTitle(_translate("Dialog", "Main Parameters of This Solar Cell"))
        self.label.setText(_translate("Dialog", "jsc [mA/cm]"))
        self.label_6.setText(_translate("Dialog", "Diode non-ideality factor"))
        self.label_2.setText(_translate("Dialog", "Uoc [V]"))
        self.label_7.setText(_translate("Dialog", "Rshunt [Ω]"))
        self.label_8.setText(_translate("Dialog", "Rseries [Ω]"))
        self.label_3.setText(_translate("Dialog", "Max. Power Point"))
        self.label_4.setText(_translate("Dialog", "Fill Factor [%]"))
        self.label_5.setText(_translate("Dialog", "Efficiency [%]"))
        self.savePNGButton.setText(_translate("Dialog", "Save as PNG"))
        self.closeButton.setText(_translate("Dialog", "Close"))