30 января 2020 г. 13:03

Формирование HTML-страницы

Всем доброго времени суток.

Возник собственно такой вопрос. Какой инструментарий использовать для того, чтобы программно формироать html-страницу? Предположим, есть программный объект, который нужно перевести в html? Как это сделать более правильно?

Рекомендуем хостинг TIMEWEB
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.
14

Добрый день.

Есть такая сторонняя библиотека QtWebApp , она использует Qt, там есть шаблонизатор для html. Думаю, что она вам подойдёт в качестве инструментария. А в этой статье один из пользователей уже использовал эту библиотеку. Там есть и проект в статье. Можете глянуть там.

Что касается алгоритма, то нужно будет подготовить все данные и объекты, которые можно будет впихнуть в тот шаблонизатор.

Вам нужно вывести информацию в красивом текстовом обрамлении?

Евгений, добрый вечер.
Для начала хотелось бы получить простой отчет, что-то вроде табличного представления Word-а.

Доброго времени суток!
Если уж таблица то почему сразу не в Ексель? Есть отлтчная библиотека. я ейю поигрался теперь формирование отчетов не проблема.

Использовал например https://evileg.com/ru/post/535/ .

Руслан, доброго времени суток.

Данные готовяться для дальнейшего просмотра в интернете, а не локально.

Интересно. А не лучше ли сохранять данные в базе данных, а потом забирать данные из БД и уже средствами сайта шаблонизировать данные как угодно?

Данные в базу. Из базы строим модели, а с ними уже хоть в инет хоть в офис

Тут не так все просто. Данные хранятся в XML-формате.

Базу данных использовать нельзя, так скажем.

Ну тогда парсить XML и формировать html документ. Все одно без вебсервера не получится.

Вот у меня и вопрос в этом. Что лучше всего использовать из штатных средств Qt?

Имхо штатных нет. Только библиотеки. Ведь вы вы будете оттадвать информацию по http, а значит нужен WEB сервер.

Сейчас стоит задача как более правильно сформировать html документ штатными средствами. И, если я правильно понял Евгения либо и спользовать стороние инструменты или писать самому. Вот я и хочу понять в какую сторону двигаться, на что смотреть, если нет возможности привлечения стороннего инстурментария.

Задача пока стоит в формировании html документа. Про сервер будем думать после.

Если чисто средствами Qt, то

  • QFile и QTextStream
  • QXmlStreamWriter
  • QDomDocument

QFile и QTextStream

 QFile file("path/fo/filename.xml");

if (!file.open(QIODevice::WriteOnly | QIODevice::Text))
{
    return;
}

QTextStream outputStream(&file);
outputStream.setCodec("UTF-8");
outputStream << "\
<html>\n\
<body>" << variable_1 << "\n\"
<< variable_2 <<
"</body>\n\
</html>\n\
";

file.close();

По остальным двум вариантам есть пример испльзоания на сайте, а также в официальной документации.

HTML и XML - это по сути одно и тоже, так что средств Qt должно быть достаточно

Комментарии

Только авторизованные пользователи могут публиковать комментарии.
Пожалуйста, авторизуйтесь или зарегистрируйтесь
Donate

Здравствуйте, уважаемые пользователи EVILEG !!!

Если сайт вам помог, то поддержите разработку сайта финансово, пожалуйста.

Вы можете сделать это следующими способами:

Спасибо, Евгений Легоцкой

p
17 февраля 2020 г. 14:41
pstMem

C++ - Тест 003. Условия и циклы

  • Результат:85баллов,
  • Очки рейтинга6
z
17 февраля 2020 г. 6:02
zet

C++ - Тест 006. Перечисления

  • Результат:80баллов,
  • Очки рейтинга4
z
17 февраля 2020 г. 5:49
zet

C++ - Тест 001. Первая программа и типы данных

  • Результат:80баллов,
  • Очки рейтинга4
Последние комментарии
24 февраля 2020 г. 3:54
Евгений Легоцкой

Добрый день. Там будет url, на который указывает ссылка тега a в пагинаторе, если правильно помню )) Написал этот код и забыл.
B
24 февраля 2020 г. 0:37
BahaMeirman

Евгений Здравствуйте! Не могу понять вот эту часть кода: url: jQuery(this).attr('action') наверное здесь должен быть путь к url, тогда 'action' на какой url указывает?
17 февраля 2020 г. 3:22
Евгений Легоцкой

Добрый день. Это кастомный тег, помещается в файл, который находится в каталоге templatetags myapp/ templatetags/ myapp.py
B
16 февраля 2020 г. 13:36
BahaMeirman

Добрый вечер! Монжно по подробней о теге get_companion? ссылка не работает.
Сейчас обсуждают на форуме
24 февраля 2020 г. 6:29
Евгений Легоцкой

Qt не предоставляет функционала по запросу root прав во время выполнения программы. Поэтому нужно использовать платформозависимый функционал, для Linux это будет выглядеть так: #include…
24 февраля 2020 г. 3:47
Евгений Легоцкой

Добрый день. Что означает клиентская область? Это изображение? Вам нужно распознавать символы текста или всё-таки пользователь будет вводить текст с клавиатуры, просто в любом месте "абстр…
VZ
21 февраля 2020 г. 5:19
Vladimir Zhitkovsky

void sendImage(int sessid, int type, int dest, int format, QString imgBase64Data){ QNetworkRequest request; request.setUrl(QUrl(ipAddress + "ctlapi/cmd=preparereportimg&sessid=…
20 февраля 2020 г. 14:40
mkdir

Здравствуйте! Пишу игру - 2D платформер в среде Qt. Имею не очень много опыта в разработке. Подскажите, как можно реализовать ситуацию, где QGraphicScene больше, чем QGraphicView и надо двигать …
20 февраля 2020 г. 7:12
Михаиллл

Вот так похоже можно https://doc.qt.io/qt-5/qtpurchasing-index.html
EVILEG
О нас
Услуги
© EVILEG 2015-2019
Рекомендует хостинг TIMEWEB