ошибка: имя неизвестного типа 'QBuffer'; Вы имели в виду «Qt3DRender :: QBuffer»?

У меня есть этот код:

          #include <QBuffer>

    // ---
    
    QString m_parentName;
    
    // ---
    
    QString path = QDir::tempPath();
    path = path + "/" + "temp-" + m_parentName + ".stl";

    QFile file;
    file.setFileName(path);
    file.resize(0); // Clear file contents if any
    file.open(QIODevice::Append);

    // Clear and add 80 bytes of header to QByteArray
    QByteArray temp_ba;
    QBuffer tmpBuffer(&temp_ba); // => error: unknown type name 'QBuffer'; did you mean 'Qt3DRender::QBuffer'?
    tmpBuffer.open(QIODevice::Append);

    tmpBuffer.write("Generated by: " // 14 bytes
                    "My Nice App"    // 11 bytes
                    "My Nice App"    // 11 bytes
                    "My Nice App"    // 11 bytes
                    "My Nice App"    // 11 bytes
                    "My Nice App"    // 11 bytes
                    "My Nice App"    // 11 bytes
                    , 80);

    file.write(temp_ba);
    file.flush();

    tmpBuffer.close();

Мой файл проекта qmake *.proсодержит:

      QT += core gui qml quick quickcontrols2 widgets 3dcore 3drender 3dextras 3dinput 3dlogic 3dquick 3drender-private

Я получаю эту ошибку:

ошибка: имя неизвестного типа 'QBuffer'; Вы имели в виду «Qt3DRender :: QBuffer»? qbuffer.h:56:31: примечание: здесь объявлен Qt3DRender::QBuffer

Что я делаю неправильно?

1 ответ

Ошибка решилась заменой:

      #include <QBuffer>

с:

      #include <QtCore/QBuffer>

Не уверен, почему? Конфликт пространств имен?

Другие вопросы по тегам