Я использую flatbuffers с C ++, и он генерирует мои классы, перечисления и т. Д. Но я хотел бы использовать их в моем QML GUI. Что означает, что мне нужны макросы типа QObject
и QT_NAMESPACE
, Q_ENUM
.
Как бы вы решили эту проблему? Я имею в виду:
- Написание собственного генератора плоских буферов для моего "собственного" языка.
- Написание классов-оберток вокруг класса и магию с QObject.
- Я попытался переопределить перечисление в другом файле, но Qt, похоже, не подобрал это.
- Разбор кода после того, как flatc.exe сделан и замена определенных ключевых слов ...: (
Пример вывода плоского буфера:
// automatically generated by the FlatBuffers compiler, do not modify
#ifndef FLATBUFFERS_GENERATED_COMMON_OCS_N_COMMON_N_H_
#define FLATBUFFERS_GENERATED_COMMON_OCS_N_COMMON_N_H_
#include "flatbuffers/flatbuffers.h"
namespace ocs_n {
namespace common_n {
enum controlState_e {
controlState_e_local = 0,
controlState_e_released = 1,
controlState_e_service = 2,
controlState_e_operational = 3,
controlState_e_MIN = controlState_e_local,
controlState_e_MAX = controlState_e_operational
};
}
}