R
Rumata723Наурыз 4, 2018, 4:26 Т.Ж.

Прекращается рендер открываемого через QWebEngine сайта.

Сразу скажу - я начинающий в этом деле.
Проблема следующая:
Открываю сайт в отдельной форме, используя QWebEngine.

Сначала сайт грузился очень медленно, и выдавал следующую ошибку в консоли (строк 20 подряд):
[10032:756:0304/185603.970:ERROR:gles2_cmd_decoder.cc(8585)] [.Offscreen-For-WebGL-000001A658B2FD90]GL ERROR :GL_INVALID_OPERATION : glRenderbufferStorageMultisampleCHROMIUM:
Решил это путем использования OpenGL (как я понял)
QCoreApplication::setAttribute(Qt::AA_UseOpenGLES);
После этого сайт начал грузиться в разы быстрее, но при попытке, например, масштабировать - сайт виснет наглухо, и появляется следующая ошибка в консоли:
[3012:2828:0304/190817.963:ERROR:frame_sink_provider_impl.cc(34)] No RenderWidgetHost exists with id 13in process 3
[3012:2828:0304/190817.963:ERROR:frame_sink_provider_impl.cc(34)] No RenderWidgetHost exists with id 13in process 3
[3012:2828:0304/190829.013:ERROR:frame_sink_provider_impl.cc(34)] No RenderWidgetHost exists with id 21in process 3
[3012:2828:0304/190829.013:ERROR:frame_sink_provider_impl.cc(34)] No RenderWidgetHost exists with id 21in process 3
Подскажите, как это решить, пожалуйста.
Рекомендуем хостинг TIMEWEB
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.

Ол саған ұнайды ма? Әлеуметтік желілерде бөлісіңіз!

16
Evgenii Legotckoi
  • Наурыз 4, 2018, 5:55 Т.Ж.
Ошибка может быть как из-за нестабильной сборки библиотеки, так либо из-за проблем с железом конкретно на вашем ПК. А также из-за того, что написали программный код некорректно.

Так что показывайте код.
Также во вложении архив с минимальным примеров для QWebEngineView
    R
    • Наурыз 4, 2018, 6:48 Т.Ж.

    Подключаю webenginewidgets в .pro файле.

    В .cpp следующее:

    ui->preview->load(QUrl("https://pubgmap.io/ru/"));
    ui->preview->show();

    *preview* - объект QWebEngineView, взятый из базового примера в Qt.
      Evgenii Legotckoi
      • Наурыз 4, 2018, 3:29 Т.Қ.

      то есть вы создали этот QWebEngineView через графический дизайнер?
      Что касается базового примера, то какой из них? Самый базовый - это minimal, который состоит всего из двух файлов, main.cpp и профайла проекта. А по факту этих примеров в Qt Creator будет десяток и я понятия не имею, какой из них вы называете базовым. Я не буду запускать каждый пример, чтобы найти это preview. Тем более, что обычный QWebEngineView.


      Я прикрепил к предыдущему сообщению архив с небольшим проектом, Вы пробовали его запустить?

      Что касается двух ваших строчек кода, то должно работать, не видя остальной части или всего вашего проекта сказать ничего не возможно. Нужно как минимум попытаться запустить на другом ПК, возможно, что у вас проблемы с графической подсистемой, или просто ещё что-то криво написано в коде.
        R
        • Наурыз 4, 2018, 8:32 Т.Қ.

        Название этого учебного проекта "WebEngine Markdown Editor Example".

        В его форме есть этот объект.

        Да, я пробовал запустить сайт с Вашего проекта - та же проблема.

        Сомневаюсь, что проблема с графической подсистемой.
        Остальной код никак не связан с моей проблемой, т.к. все это реализовывается в отдельной форме со своими *.h и *.cpp.
          Evgenii Legotckoi
          • Наурыз 5, 2018, 3:23 Т.Ж.
          • (өңделген)

          Всё-таки это проблема с графикой на вашем ПК, а конкретно с драйверами, которые отвечают за WebGL.

          Если бы это была проблема в коде, то у меня бы эта ошибка также проявилась бы.

          Я поискал похожие случаи и зачастую везде советуется в первую очередь обновить драйвера, причём проблема с графикой Intel. У вас случаем не NVidia видеокарта?
          Если код состоит из пары тех строчек, что Вы привели, и проблема проявляется при работе с OpenGL, то сдаётся мне, что машинка у вас достаточно старая, либо драйвера давно не обновляли.
            R
            • Наурыз 5, 2018, 3:55 Т.Ж.
            • (өңделген)

            GT 740M, последние драйвера.


            Всё же, я решил проверить, т.к. возможно проблема крылась в том, что проект запускался с интегрированной графики. Собрал релиз версию, вынес её отдельно со всеми нужными библиотеками и запустил - все работает идеально. Что на процессорной графике, что на видеокарте.

            Не понимаю, почему из самого Qt она никак не хотела нормально работать. Может быть разница в дебаг и релиз версии сборки?

            Появилась новая проблема - на эти 2 строчки программа требует 11 новых библиотек (раньше хватало 2), общим весом 81.1 мб, что весьма напрягает. Есть способ сократить вес? Вынести только нужные функции из этих библиотек? Я не знаю как это делается, и делается ли это вообще. Подскажите, пожалуйста, в какую сторону копать.

              Evgenii Legotckoi
              • Наурыз 5, 2018, 4:07 Т.Ж.

              Я могу подсказать куда копать, но сам туда ещё не копал, необходимости не было.

              В Qt 5.8 внедрили Qt Configuration Tool , который позволяет собирать сам Qt только с необходимым функционалом, это называется Qt Lite . Но если учесть, что у вас основной вес тянет Qt5WebEngineCore.dll , то занятие это будет довольно сомнительным. Смысл в том, что если хотите писать свой браузер, то придётся использовать Qt5WebEngineCore.dll , а он весит 69 мБ, так что вряд ли вы сможете уменьшить весь пакета меньше 75 Мб.
              Но в тоже время, я сомневаюсь, что он очень сильно вырастет в дальнейшем. Для этого придётся написать достаточно много кода, только если вы не прикрутите туда ещё какие-нибудь тяжеловесные библиотеки.

              Так что я рекомендовал бы сейчас вам не задумываться над этим, а просто писать свой проект. А ту проблему размера оставить на поздний период, если это конечно будет для вас проблемой уже.
                R
                • Наурыз 5, 2018, 4:17 Т.Ж.
                • (өңделген)

                В моем проекте - это единственное использование функции открытия веб-страницы.


                Дело в том, что я их подкинул потому что при запуске *.exe файла он выдавал ошибку из-за отсутствия библиотеки. Сомневаюсь, что использование Qt Configuration Tool дало бы мне иной результат.
                Я могу понять требование библиотек, связанных с сетью и ядром самого Qt5WebEngine , но Qt5PrintSupport наводит на мысль, что само подключение webenginewidgets требует определенный пул библиотек, даже если я их не использую никак. Хотя я совершенно не понимаю необходимость Qt5PrintSupport здесь.

                Возможно, для моего случая есть другой способ реализации? Мне всего лишь требуется открыть одну веб-страницу, но чтобы она полностью функционировала.

                Либо, возможен ли способ подключения только необходимых библиотек в самом коде? Где-то видел про функцию #pragma для этого, но так и не понял как это конкретно делается.
                  Evgenii Legotckoi
                  • Наурыз 5, 2018, 4:30 Т.Ж.
                  • (өңделген)

                  И вновь охота за ведьмами из-за 3 мБ HDD ))))


                  Но тем не менее есть корректный способ отключить поддержку печати.
                  #pragma - это вам не потребуется.

                  А вот если добавить следующие дефайны в pro файл проекта, то библиотека не должна потребоваться.
                  DEFINES                += QT_NO_PRINTER QT_NO_PRINTDIALOG
                    R
                    • Наурыз 5, 2018, 4:57 Т.Ж.

                    Не помогло. Ругается при запуске.


                    И вновь охота за ведьмами из-за 3 мБ HDD ))))
                    Даже если так - я все равно при этом получаю какие-то новые знания, которые, возможно, могут чем-то помочь позже. Это делает данный интерес менее бесполезным ;)

                    А по поводу альтернативных реализаций. Помимо QWebEngine не предусмотрены функции попроще ?)

                      Evgenii Legotckoi
                      • Наурыз 5, 2018, 5:11 Т.Ж.

                      Да, вы правы, любая информация может быть полезной в будущем. Главное, чтобы такие экономии не доходили до абсурда. Программа должна решать в первую очередь поставленную задачу )) но я вас в этом плане понимаю.


                      Что касается способа попроще вместо QWebEngine , то скорее нет, чем да. Дело в том, что вам требуется рабочая страница, а значит и поддержка всех скриптов должна быть, а для этого требуется браузерный движок. И в данном случае это самый простой вариант.

                      Можно, конечно, заморочиться с QTextView , поскольку он поддерживает html-вёрстку , НО поддержка весьма скромная, и скрипты работать не будут, также как не будет работать переход по ссылкам.

                      Полагаю, что тогда использование библиотеки Qt5PrintSupport можно будет выковырять только кастомной сборкой самой библиотеки Qt, чем обычно 98 процентов программистов не занимается, поскольку в нынешнее время эти 10-15 мБ ничего не решают, если только Вы не занимаетесь Embed разработкой, но для этого у Qt есть свои решения для коммерческой лицензии. В том числе и поддержка всякого рода встраиваемых систем типо Yocto.

                      К сожалению, не могу указать Вам гарантированно правильного пути, только направление, чтобы Вы составили своё мнение, поскольку один человек не может охватить всё и сразу. Но по факту вырезание лишнего функционала из Qt раньше делали через статическую сборку, сейчас ещё и через Qt Configuration Tool.
                        R
                        • Наурыз 5, 2018, 5:16 Т.Ж.
                        • (өңделген)

                        Понял вас. Спасибо за помощь )


                        Правда, появилась новая проблема. Скинул программу другу, и при попытке им запустить окно (нажатием кнопки),  в котором открывается сайт, программа просто зависает. Хотя у меня работает без проблем.
                        Как узнать, в чем проблема? Набор библиотек такой же у обоих.

                          Evgenii Legotckoi
                          • Наурыз 5, 2018, 5:21 Т.Ж.
                          • Жауап шешім ретінде белгіленді.

                          Попробуйте для начала собрать библиотеки с помощью windeployqt

                          Вполне возможно, что за счёт переменных PATH у вас несколько больше библиотек, чем у вашего товарища.
                            R
                            • Наурыз 6, 2018, 1:18 Т.Ж.
                            • (өңделген)

                            Действительно, помогло. Спасибо! Правда папка "потолстела" на 100мб )


                            А по поводу отключения через defines - есть где-то их список? Или где искать то эти строки, которые отключают.
                              Evgenii Legotckoi
                              • Наурыз 6, 2018, 1:42 Т.Ж.

                              Самого списка дефайнов я не находил, это просто добавляемые переменные при компиляции. А те переменные, которые я привёл - это из стандартных, которые часто попадаются в примерах. Но по видимому они не убирают полностью необходимость библиотеки Qt5PrintSupport.


                              А так есть список различных настроечных параметров для qmake.
                              Вот например, что касается настройки qmake
                                R
                                • Наурыз 6, 2018, 3:27 Т.Ж.

                                Спасибо, почитаю.

                                  Пікірлер

                                  Тек рұқсаты бар пайдаланушылар ғана пікір қалдыра алады.
                                  Кіріңіз немесе Тіркеліңіз
                                  AD

                                  C++ - Тест 004. Указатели, Массивы и Циклы

                                  • Нәтиже:50ұпай,
                                  • Бағалау ұпайлары-4
                                  m
                                  • molni99
                                  • Қаз. 26, 2024, 1:37 Т.Ж.

                                  C++ - Тест 004. Указатели, Массивы и Циклы

                                  • Нәтиже:80ұпай,
                                  • Бағалау ұпайлары4
                                  m
                                  • molni99
                                  • Қаз. 26, 2024, 1:29 Т.Ж.

                                  C++ - Тест 004. Указатели, Массивы и Циклы

                                  • Нәтиже:20ұпай,
                                  • Бағалау ұпайлары-10
                                  Соңғы пікірлер
                                  ИМ
                                  Игорь МаксимовҚар. 22, 2024, 11:51 Т.Ж.
                                  Django - Оқулық 017. Теңшелген Django кіру беті Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
                                  Evgenii Legotckoi
                                  Evgenii LegotckoiҚаз. 31, 2024, 2:37 Т.Қ.
                                  Django - Сабақ 064. Python Markdown кеңейтімін қалай жазуға болады Добрый день. Да, можно. Либо через такие же плагины, либо с постобработкой через python библиотеку Beautiful Soup
                                  A
                                  ALO1ZEҚаз. 19, 2024, 8:19 Т.Ж.
                                  Qt Creator көмегімен fb3 файл оқу құралы Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
                                  ИМ
                                  Игорь МаксимовҚаз. 5, 2024, 7:51 Т.Ж.
                                  Django - Сабақ 064. Python Markdown кеңейтімін қалай жазуға болады Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
                                  d
                                  dblas5Шілде 5, 2024, 11:02 Т.Ж.
                                  QML - Сабақ 016. SQLite деректер қоры және онымен QML Qt-та жұмыс істеу Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
                                  Енді форумда талқылаңыз
                                  m
                                  moogoҚар. 22, 2024, 7:17 Т.Ж.
                                  Mosquito Spray System Effective Mosquito Systems for Backyard | Eco-Friendly Misting Control Device & Repellent Spray - Moogo ; Upgrade your backyard with our mosquito-repellent device! Our misters conce…
                                  Evgenii Legotckoi
                                  Evgenii LegotckoiМаусым 24, 2024, 3:11 Т.Қ.
                                  добавить qlineseries в функции Я тут. Работы оень много. Отправил его в бан.
                                  t
                                  tonypeachey1Қар. 15, 2024, 6:04 Т.Ж.
                                  google domain [url=https://google.com/]domain[/url] domain [http://www.example.com link title]
                                  NSProject
                                  NSProjectМаусым 4, 2022, 3:49 Т.Ж.
                                  Всё ещё разбираюсь с кешем. В следствии прочтения данной статьи. Я принял для себя решение сделать кеширование свойств менеджера модели LikeDislike. И так как установка evileg_core для меня не была возможна, ибо он писался…

                                  Бізді әлеуметтік желілерде бақылаңыз