z
Қаң. 19, 2017, 7:15 Т.Қ.

В офф примере для чтения используется QIODevice::writeData, почему?

qt, linux, io, QAudioInput, charts

Пытался разбираться как связывать данные с чартами и наткнулся на это: http://doc.qt.io/qt-5/qtcharts-audio-example.html В доках на writeData чётко написано: [pure virtual protected] qint64 QIODevice::writeData(const char *data, qint64 maxSize) Writes up to maxSize bytes from data to the device. Returns the number of bytes written, or -1 if an error occurred. Но пример-то работает, а значит в этом методе происходит чтение данных из микрофона. Почему это работает/реализовано в методе writeData а не в readData?

1

Ол саған ұнайды ма? Әлеуметтік желілерде бөлісіңіз!

2
Evgenii Legotckoi
  • Қаң. 19, 2017, 8:15 Т.Қ.
  • Жауап шешім ретінде белгіленді.

Там всё правильно реализовано. Чтение из микрофона производится через объект класса QAudioInput.

А writeData является переопределённым методом базового класса QIODevice в наследованном классе XYSeriesIODevice . А уже этот класс XYSeriesIODevice служит для записи данных в объект QLineSeries .

Так что с точки зрения логики всё правильно и логично.

  1. QAudioInput читает из микрофона
  2. QAudioInput передаёт считанные данные в XYSeriesIODevice
  3. XYSeriesIODevice пишет данные в QLineSeries
    z
    • Қаң. 19, 2017, 10:08 Т.Қ.

    Понятно, я подумал что XYSeriesIODevice это и есть интерфейс для audioinput, потому и смутило описание метода в доках. Спасибо!

      Пікірлер

      Тек рұқсаты бар пайдаланушылар ғана пікір қалдыра алады.
      Кіріңіз немесе Тіркеліңіз