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 Т.Ж.

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

                                  Пікірлер

                                  Тек рұқсаты бар пайдаланушылар ғана пікір қалдыра алады.
                                  Кіріңіз немесе Тіркеліңіз
                                  m
                                  • molni99
                                  • Қаз. 26, 2024, 1:37 Т.Ж.

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

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

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

                                  • Нәтиже:20ұпай,
                                  • Бағалау ұпайлары-10

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

                                  • Нәтиже:42ұпай,
                                  • Бағалау ұпайлары-8
                                  Соңғы пікірлер
                                  i
                                  innorwallҚар. 10, 2024, 1:03 Т.Қ.
                                  Джанго - Сабақ 029. Сайтқа жеке хабарламалар мен чаттар қосу - 1 бөлім priligy at walgreens ortho ciprofloxacin tablet uses in telugu Republicans in Congress have chastised Obama s top health adviser, Health and Human Services Secretary Kathleen Sebelius, …
                                  i
                                  innorwallҚар. 10, 2024, 9:55 Т.Ж.
                                  Linux жүйесінде файлдарды қалай көшіруге болады In dogs, it is used to facilitate synchronized cardioversion of atrial fibrillation buy priligy usa
                                  i
                                  innorwallҚар. 10, 2024, 9:03 Т.Ж.
                                  Qt тілінде ойын қалай жазылады - 3-сабақ. Басқа объектілермен әрекеттесу priligy otc I routinely do not tell patients and or parents of patients with atopic dermatitis to avoid glutamates in food
                                  i
                                  innorwallҚар. 10, 2024, 4:31 Т.Ж.
                                  QMYSQL драйверін құру (MariaDB) Windows 10 x64 QT 5.13.0 Mingw73_64 amazon priligy Conclusion This is the first study of the adverse effects of quetiapine ingestion by children under 7 years of age
                                  Енді форумда талқылаңыз
                                  i
                                  innorwallҚар. 10, 2024, 8:22 Т.Ж.
                                  добавить qlineseries в функции The information provided in Dosage Posology and method of administration of Tamoxifen Actavis is based on data of another medicine with exactly the same composition as the Tamoxifen Actavis …
                                  9
                                  9AnonimҚаз. 25, 2024, 9:10 Т.Ж.
                                  Машина тьюринга // Начальное состояние 0 0, ,<,1 // Переход в состояние 1 при пустом символе 0,0,>,0 // Остаемся в состоянии 0, двигаясь вправо при встрече 0 0,1,>…
                                  F
                                  FynjyШілде 22, 2024, 4:15 Т.Ж.
                                  при создании qml проекта Kits есть но недоступны для выбора Поставил Qt Creator 11.0.2. Qt 6.4.3 При создании проекта Qml не могу выбрать Kits, они все недоступны, хотя настроены и при создании обычного Qt Widget приложения их можно выбрать. В чем может …

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