Как указать способ разметки фрагмента кода?

#c #qt #qt5 #qdoc

#c #qt #qt5 #qdoc

Вопрос:

Цель

В целях документации я хотел бы экспортировать фрагмент кода C из QtCreator в виде HTML-файла, а затем использовать CSS для выделения его синтаксиса, например, так:

код с подсветкой синтаксиса

Поскольку QtCreator не имеет опции экспорта, я использую QDoc для этого.

Согласно документации, я использую quotefile in a qdoc -file в своем проекте, чтобы превратить исходный код из main.cpp в HTML:

 /*!
    page index
    quotefile main.cpp
 */
  

Запуск qdoc выдает index.html , и когда я его открываю, действительно есть помеченное содержимое main.cpp .

Примечание: Чтобы продемонстрировать проблему, я использую код из документации:

 #include <QApplication>
#include <QPushButton>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    QPushButton hello("Hello world!");
    hello.resize(100, 30);

    hello.show();
    return app.exec();
}
  

Проблема

Когда я просматриваю созданный html-код в браузере hello( , например, для части, я получаю:

  hello(
  

Однако, когда я просматриваю html-код документации, который, как я полагаю QDoc , также генерируется с помощью, для той же части, которую я вижу:

 <span class="pln"> hello</span>
  

Я не знаю, почему в моем случае отсутствует дополнительная разметка.

Вопрос

Как настроить QDoc так, чтобы я мог указать правила разметки каждой части фрагмента кода?

Комментарии:

1. Можете ли вы опубликовать свой рабочий cpp-код? Для меня это не выглядит допустимым cpp: QPushButton hello(«Привет, мир!»);.resize(100, 30);

2. @Jens Это не выглядит допустимым cpp для меня , это также не выглядит допустимым для меня. Как я уже упоминал: я использую код из документации. Таким образом, я могу провести параллельное сравнение результатов. Это также не имеет значения. Даже при .resize(100, 30); опущенном значении результат остается " hello(" неизменным, без тегов.

3. @Jens Конечно, это допустимый cpp. Почему этого не должно быть?

4. @Йенс, взгляни на doc.qt.io/qt-5.12 /…

5. Это было только 20 октября.