Intruder
Intruder31 января 2020 г. 0:03

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

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

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

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

Вам это нравится? Поделитесь в социальных сетях!

14
Evgenii Legotckoi
  • 31 января 2020 г. 0:11

Добрый день.

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

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

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

    Intruder
    • 31 января 2020 г. 0:17

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

      Ruslan Polupan
      • 31 января 2020 г. 0:48

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

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

        Intruder
        • 31 января 2020 г. 1:21

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

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

          Evgenii Legotckoi
          • 31 января 2020 г. 2:15

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

            Ruslan Polupan
            • 31 января 2020 г. 12:01

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

              Intruder
              • 1 февраля 2020 г. 21:12

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

                Intruder
                • 1 февраля 2020 г. 21:14

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

                  Ruslan Polupan
                  • 1 февраля 2020 г. 23:01

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

                    Intruder
                    • 2 февраля 2020 г. 0:17

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

                      Ruslan Polupan
                      • 2 февраля 2020 г. 0:41

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

                        Intruder
                        • 2 февраля 2020 г. 1:33

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

                          Intruder
                          • 2 февраля 2020 г. 1:35

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

                            Evgenii Legotckoi
                            • 3 февраля 2020 г. 14:14
                            • Ответ был помечен как решение.

                            Если чисто средствами 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 должно быть достаточно

                              Комментарии

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

                              Qt - Тест 001. Сигналы и слоты

                              • Результат:84баллов,
                              • Очки рейтинга4
                              Ua

                              Qt - Тест 001. Сигналы и слоты

                              • Результат:42баллов,
                              • Очки рейтинга-8
                              ОК

                              Qt - Тест 001. Сигналы и слоты

                              • Результат:47баллов,
                              • Очки рейтинга-6
                              Последние комментарии
                              ИМ
                              Игорь Максимов22 ноября 2024 г. 21:51
                              Django - Урок 017. Кастомизированная страница авторизации на Django Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
                              Evgenii Legotckoi
                              Evgenii Legotckoi31 октября 2024 г. 23:37
                              Django - Урок 064. Как написать расширение для Python Markdown Добрый день. Да, можно. Либо через такие же плагины, либо с постобработкой через python библиотеку Beautiful Soup
                              A
                              ALO1ZE19 октября 2024 г. 17:19
                              Читалка fb3-файлов на Qt Creator Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
                              ИМ
                              Игорь Максимов5 октября 2024 г. 16:51
                              Django - Урок 064. Как написать расширение для Python Markdown Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
                              d
                              dblas55 июля 2024 г. 20:02
                              QML - Урок 016. База данных SQLite и работа с ней в QML Qt Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
                              Сейчас обсуждают на форуме
                              f
                              firstlunoxod15 февраля 2025 г. 13:46
                              Рисование на QGraphicsScene при зажатой кнопке мыши Подскажите, пожалуйста! Как данный класс можно дополнить, чтобы созданные объекты можно было перемещать мышкой по сцене?
                              Дмитрий
                              Дмитрий3 февраля 2025 г. 16:24
                              Создание deb-пакета. Как создать ярлык на рабочем столе после установки собственного deb-пакета? Всем привет. Сделал свой deb-пакет с программой. Всё устанавливается и работает. Ставлю по пути /usr/bin/my_application. Как для пользователя при установке пакета сразу создать ярлык на раб…
                              NW
                              Nayo Wai30 января 2025 г. 19:22
                              не запускается компьютер!!! Не запускается компьютер (точнее работает блок , но сам монитор вообще жесть)В общем я ничего с интернета не скачивала в последнее время. На компе никаких левых пр…
                              n
                              nkly3 января 2025 г. 12:52
                              Нужно запретить перемещение только некоторых итемов, остальные перемещать можно. Вопрос решен. Узнать QModelIndex элемента на который мы перетаскиваем другой элемент, можно с помощью функции indexAt(event->position().toPoint()) представления QTreeViev вызываемой в переопр…
                              M
                              Marsel17 августа 2023 г. 0:26
                              OAuth2.0 через VK, получение email Спасибо большое за помощь и простите за то что отнял время своей невнимательностью.

                              Следите за нами в социальных сетях