QWebEngine is a new web browser engine introduced in Qt 5.4, it's used to replace the old QWebView. QWebView is based on WebKit, while QWebEngine is based on Chromium browser, so it's faster and supports more features.
I wrote a very simple program to test QWebEngine, following is the code:
|
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); QString url("http://google.com"); WebEngineView *view = new WebEngineView(); view->load(url); this->setCentralWidget(view); } |
Compiling and running is smooth. But when I tried to run this demo on another machine, it crashed, and an error dialog is shown with the message "An unknown software exception (0x80000003) has occurred at 0x023c5b7e. Click OK to terminate the program."
By chekcing the log file (debug.log) I found some helpful information:
[ERROR:icu_util.cc(154)] Couldn't mmap D:\Qt\Qt5.4.0\5.4\msvc2013_64\icudtl.dat
[FATAL:content_main_runner.cc(719)] Check failed: base::i18n::InitializeICU()
We can see the icudtl.dat path is not correct, because it doesn't exist at all.
To fix it we need to create a new file named "qt.conf" under the application directory, and fill it with following content:
(This bug is posted at https://bugreports.qt.io/browse/QTBUG-42083)