Ejemplo n.º 1
0
def main():
    import sys

    app = QApplication(sys.argv)

    set0 = QBarSet("Jane")
    set1 = QBarSet("John")
    set2 = QBarSet("Axel")
    set3 = QBarSet("Mary")
    set4 = QBarSet("Samantha")

    set0 << 1 << 2 << 3 << 4 << 5 << 6
    set1 << 5 << 0 << 0 << 4 << 0 << 7
    set2 << 3 << 5 << 8 << 13 << 8 << 5
    set3 << 5 << 6 << 7 << 3 << 4 << 5
    set4 << 9 << 7 << 5 << 3 << 1 << 2

    series = QBarSeries()
    series.append(set0)
    series.append(set1)
    series.append(set2)
    series.append(set3)
    series.append(set4)

    chart = QChart()
    chart.addSeries(series)
    chart.setTitle("Simple barchart example")
    chart.setAnimationOptions(QChart.SeriesAnimations)

    categories = ("Jan", "Feb", "Mar", "Apr", "May", "Jun")
    axisX = QBarCategoryAxis()
    axisX.append(categories)
    chart.addAxis(axisX, Qt.AlignBottom)
    series.attachAxis(axisX)

    axisY = QValueAxis()
    axisY.setRange(0, 15)
    chart.addAxis(axisY, Qt.AlignLeft)
    series.attachAxis(axisY)

    chart.legend().setVisible(True)
    chart.legend().setAlignment(Qt.AlignBottom)

    chartView = QChartView(chart)
    chartView.setRenderHint(QPainter.Antialiasing)

    window = QMainWindow()
    window.setCentralWidget(chartView)
    window.resize(420, 300)
    window.show()

    sys.exit(app.exec_())
Ejemplo n.º 2
0
class Widget(QWidget):
    def __init__(self,
                 device_info: QAudioDeviceInfo,
                 parent: QWidget = None) -> None:
        super().__init__(parent)
        self.m_chart = QChart()
        self.m_series = QLineSeries()

        chart_view = QChartView(self.m_chart)
        chart_view.setMinimumSize(800, 600)
        self.m_chart.addSeries(self.m_series)
        axisX = QValueAxis()
        axisX.setRange(0, XYSeriesIODevice.sampleCount)
        axisX.setLabelFormat("%g")
        axisX.setTitleText("Samples")
        axisY = QValueAxis()
        axisY.setRange(-1, 1)
        axisY.setTitleText("Audio level")
        self.m_chart.addAxis(axisX, Qt.AlignBottom)
        self.m_series.attachAxis(axisX)
        self.m_chart.addAxis(axisY, Qt.AlignLeft)
        self.m_series.attachAxis(axisY)
        self.m_chart.legend().hide()
        self.m_chart.setTitle(
            f"Data from the microphone ({device_info.deviceName()})")

        mainLayout = QVBoxLayout(self)
        mainLayout.addWidget(chart_view)

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

        self.m_audioInput = QAudioInput(device_info, formatAudio, self)

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

        self.m_audioInput.start(self.m_device)