Документация по сгенерированному коду Qt MOC

Я разрабатываю пользовательский интерфейс в Qt, и по причинам долголетия я бы не хотел, чтобы в будущих сборках использовался компилятор мета-объектов Qt. Я знаю, что MOC анализирует определенные макросы в стандартном коде C ++ и на их основе генерирует код C ++.

Что я хотел бы знать: где документация этого сгенерированного кода? Я хотел бы написать сгенерированный код непосредственно в мои соответствующие классы. Хотя сейчас это может быть затруднительно, но это сделает пользовательский интерфейс более стабильным в долгосрочной перспективе, избегая любых проблем в случае исчезновения Qt и прекращения существования MOC.

Спасибо!

Изменить 1:
Я проектирую пользовательский интерфейс на основе Qt в Visual Studio (НЕ Qt Creator) для приложения C ++, которое не основано на фреймворке Qt. Я хочу иметь возможность распространять код, который может быть собран как чистый C ++, с кодом Qt, связанным из определенных библиотек, которые будут упакованы. Я хочу иметь возможность собирать этот код в системах, в которых не установлен Qt. Отсюда и желание избежать МОС. Я не пытаюсь обидеть фанатов Qt, Qt великолепен. Тем не менее, мне нужно что-то немного другое в этом проекте, так что предложения «Просто используйте MOC» совсем не помогают.

Изменить 2: Я достаточно человек, чтобы признать, когда я неправ. После некоторых размышлений и исследований, явно не стоит пытаться делать то, что я планировал делать. Мне просто нужно сохранить сгенерированный MOC-код и распространять его. Спасибо всем.

0

Решение

Использование дословного вывода moc в ваш код делает ваш код менее переносимым, не более, так как формат вывода moc меняется чаще (в настоящее время версия 67), чем несовместимые с исходным кодом основные версии Qt (в настоящее время версия 5).

5

Другие решения

Похоже, что в целом не стоит пытаться обходить МОК, как все здесь указали мне. Мое решение будет сохранять сгенерированные MOC исходные файлы в системе контроля версий и упаковывать их вместе с основным кодом приложения для распространения.

0

По вопросам рекламы [email protected]