Работа с WebView в QML
Добрый день!
В последнее время мне похоже везет на проблемы с Qt в Windows :)
Решил попробовать поработать с компонентом WebView. Привожу код модулей:
Файл pro:
- QT += quick webview # добавил webview
Файл main.cpp:
- #include <QGuiApplication>
- #include <QQmlApplicationEngine>
- #include <QtWebView>
- int main(int argc, char *argv[])
- {
- QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
- QGuiApplication app(argc, argv);
- QtWebView::initialize(); // Добавил
- QQmlApplicationEngine engine;
- engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
- if (engine.rootObjects().isEmpty())
- return -1;
- return app.exec();
- }
Файл Page1Form.ui.qml:
- import QtQuick 2.11
- import QtQuick.Controls 2.4
- import QtWebView 1.1
- Page {
- property alias webView: webView
- WebView {
- id: webView
- url: "https://www.google.com"
- anchors.fill: parent
- }
- }
Файл main.qml:
- import QtQuick 2.11
- import QtQuick.Controls 2.4
- ApplicationWindow {
- visible: true
- width: 1024
- height: 768
- title: qsTr("Title")
- SwipeView {
- id: swipeView
- anchors.fill: parent
- currentIndex: 0
- Page1Form { }
- }
- }
Под Linux компилируется, запускается и в WebView загружается страничка Google - все работает.
Под Windows компилируется, запускается, а в WebView пусто.
Проверил в MaintenanceTool все что касается Qt 5.11.1 установлено, кроме sourse.
Может под Windows нужно что-то еще добавить?
В выводе приложения есть строчки:
- [2688:4752:1010/140405.035:INFO:media_foundation_video_encode_accelerator_win.cc(370)] Windows versions earlier than 8 are not supported.
- ....
- [2688:4752:1010/140411.979:ERROR:gles2_cmd_decoder.cc(2603)] [GroupMarkerNotSet(crbug.com/242999)!:988D170600000000]GL ERROR :GL_INVALID_ENUM : BackFramebuffer::Create: <- error from previous GL command
Это что значит, что о WebView можно забыть если стоит не Windows 8 или 10?
We recommend hosting TIMEWEB
Stable hosting, on which the social network EVILEG is located. For projects on Django we recommend VDS hosting.Do you like it? Share on social networks!
- Akiv Doros
- Nov. 11, 2024, 2:58 p.m.
C ++ - Test 004. Pointers, Arrays and Loops
- Result:50points,
- Rating points-4
- molni99
- Oct. 26, 2024, 1:37 a.m.
C ++ - Test 004. Pointers, Arrays and Loops
- Result:80points,
- Rating points4
- molni99
- Oct. 26, 2024, 1:29 a.m.
C ++ - Test 004. Pointers, Arrays and Loops
- Result:20points,
- Rating points-10
Мне кажется, что проблема не в первой строке (не с видео), а в 3-й.
Какая версия Qt? Тут (https://forum.qt.io/topic/69796/qwebengineview-fails) пишут, что сталкивались с такой проблемой на 5.7, хотя на 5.6 всё работало хорошо.
Может длл-ки не хватает какой-то?
Версия Qt 5.11.1.
5.10 + Win10 + MSVC2015 - полёт нормальный. Запустилось без лишних вопросов (только на отсутствие Win SDK ругается, но всё равно работает). Win7 и ранее для тестирования нет, к сожалению.
Спасибо! Попробую поставить Qt 5.10 на Win 7 может заработает.
С 5.11 не пробовал - у меня к ней не скачен webengine. Больно уж он тяжёлый.
доброго времени суток, а на каком компиляторе сборка идет? на сколько я помню,
MinGW+webview работает под linux, а вот под виндой нужен только MSVC.
MinGW - виндовый компилятор. Под линуксом свои компиляторы.
И да, MinGW + webview не работают (или, по крайней мере, год назад не работали, а сейчас я не проверял :) ).
в общем, ТСу нужно протестить с мелкософтным компилятором
Компилятор MSVC 2017.
Я попробовал еще и с MinGW, но ничего не работает. В сети нашел много записей о похожих проблемах (на разных версиях Qt), но ни одна не решена. Похоже, что на WebView под Windows 7 забили :)
Я для киоска на win7 делал на QWebEngineView. Qt 5.9, 5.10 на MSVC2015. Всё работало. Завелось без проблем.
Это, конечно, не QML был. Может без QML получится обойтись?
Пока да. Большое спасибо за помощь!
Qt WebEngine сейчас просто не поставляется для MinGW, поэтому если нужен QWebView, то нужно использовать MSVC. Либо попробовать сбилдовать самостоятельно, но что-то подсказывает мне, что овчинка выделки не стоит.
Нашел в чем проблема.
Пишу на случай если кому-то попадется такое же счастье с WebView как и мне.
Проблема как оказалась с Debug версией, так как в Release и Profile все работает (правда медленно, но хоть как-то работает).
Стал копать и в логах веника нашел, что Qt5WebEngineCored.dll значится как причина аварийного закрытия QtWebEngineProcess, хотя на удивление никакое сообщение с ошибкой не вылетает и в самом Qt Creator'е на это нет никакого намека (в Linux с Debug все хорошо :)).