I'm writting some kind of web-browser based on QTWebEngine. So I have a crash when trying to run it. Here is my code (you may try to build it):
main.cpp:
#include <QtWidgets>
#include "mainwindow.h"
int main(int argc, char *argv[])
{
MainWindow * mainWnd = new MainWindow();
mainWnd -> show();
return a.exec();
}
#include <QtWidgets>
#include "mainwindow.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow * mainWnd = new MainWindow();
mainWnd -> show();
return a.exec();
}
To copy to clipboard, switch view to plain text mode
mainwindow.h:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QMenuBar>
#include <QMenu>
#include <QPushButton>
#include <QLineEdit>
#include <QComboBox>
#include <QLayout>
#include <QHBoxLayout>
#include <qtwebenginewidgetsglobal.h>
#include <QWebEngineView>
{
Q_OBJECT
public:
explicit MainWindow
(QWidget *parent
= 0);
~MainWindow();
private:
void createMenu();
void createUrlBar();
void createBrowserWindow();
void loadHomepage();
void applyLayouts();
QMenu * menuFile,
* menuFile2;
QPushButton * barNextBut,
* barBackBut,
* barRefreshBut,
* barEnterBut;
QWebEngineView * browserWidget;
signals:
public slots:
};
#endif // MAINWINDOW_H
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QMenuBar>
#include <QMenu>
#include <QPushButton>
#include <QLineEdit>
#include <QComboBox>
#include <QLayout>
#include <QHBoxLayout>
#include <qtwebenginewidgetsglobal.h>
#include <QWebEngineView>
class MainWindow : public QWidget
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private:
void createMenu();
void createUrlBar();
void createBrowserWindow();
void loadHomepage();
void loadUrl (QUrl);
void applyLayouts();
QMenuBar * menuBar;
QMenu * menuFile, * menuFile2;
QWidget * barWidget;
QPushButton * barNextBut,* barBackBut, * barRefreshBut, * barEnterBut;
QLineEdit * barUrlEdit;
QComboBox * barSelectCB;
QWebEngineView * browserWidget;
QHBoxLayout * barLayout;
QVBoxLayout * mainLayout;
signals:
public slots:
};
#endif // MAINWINDOW_H
To copy to clipboard, switch view to plain text mode
mainwindow.cpp:
#include "mainwindow.h"
MainWindow
::MainWindow(QWidget * parent
) {
this -> setMinimumSize (1100, 600);
createMenu();
createUrlBar();
createBrowserWindow();
applyLayouts();
loadHomepage();
}
void MainWindow::createMenu()
{
menuFile
= new QMenu("File");
menuFile2
= new QMenu("File2");
menuFile -> addMenu (menuFile2);
menuBar -> addMenu (menuFile);
}
void MainWindow::createUrlBar()
{
//Контейнер;
barWidget -> setContextMenuPolicy(Qt::NoContextMenu);
barWidget -> setMaximumHeight(30);
//Кнопки;
barNextBut -> setMaximumSize(21, 21);
barBackBut -> setMaximumSize(21, 21);
barRefreshBut -> setMaximumSize(21, 21);
barEnterBut -> setMaximumSize(21, 21);
barUrlEdit -> setMinimumSize(256, 21);
barUrlEdit -> setMaximumHeight(21);
barSelectCB -> setMinimumSize(256, 21);
barSelectCB -> setMaximumSize(256, 21);
}
void MainWindow::createBrowserWindow()
{
browserWidget = new QWebEngineView(this);
}
void MainWindow::loadHomepage()
{
QUrl * url
= new QUrl("http://google.ru");
loadUrl(*url);
delete(url);
}
void MainWindow
::loadUrl (QUrl url
) {
browserWidget -> load(url);
}
void MainWindow::applyLayouts ()
{
barLayout -> setContentsMargins(0,0,0,0);
barLayout -> addWidget(barSelectCB);
barLayout -> addWidget(barBackBut);
barLayout -> addWidget(barNextBut);
barLayout -> addWidget(barUrlEdit);
barLayout -> addWidget(barRefreshBut);
barLayout -> addWidget(barEnterBut);
barWidget -> setLayout(barLayout);
mainLayout
-> setDirection
(QBoxLayout::TopToBottom);
mainLayout -> setMenuBar(menuBar);
mainLayout -> addWidget (barWidget);
mainLayout -> addWidget (browserWidget);
setLayout(mainLayout);
}
#include "mainwindow.h"
MainWindow::MainWindow(QWidget * parent)
{
this -> setMinimumSize (1100, 600);
createMenu();
createUrlBar();
createBrowserWindow();
applyLayouts();
loadHomepage();
}
void MainWindow::createMenu()
{
menuBar = new QMenuBar();
menuFile = new QMenu("File");
menuFile2 = new QMenu("File2");
menuFile -> addMenu (menuFile2);
menuBar -> addMenu (menuFile);
}
void MainWindow::createUrlBar()
{
//Контейнер;
barWidget = new QWidget(this);
barWidget -> setContextMenuPolicy(Qt::NoContextMenu);
barWidget -> setMaximumHeight(30);
//Кнопки;
barNextBut = new QPushButton(">");
barBackBut = new QPushButton("<");
barRefreshBut = new QPushButton("R");
barEnterBut = new QPushButton("->");
barNextBut -> setMaximumSize(21, 21);
barBackBut -> setMaximumSize(21, 21);
barRefreshBut -> setMaximumSize(21, 21);
barEnterBut -> setMaximumSize(21, 21);
barUrlEdit = new QLineEdit(barWidget);
barUrlEdit -> setMinimumSize(256, 21);
barUrlEdit -> setMaximumHeight(21);
barSelectCB = new QComboBox(barWidget);
barSelectCB -> setMinimumSize(256, 21);
barSelectCB -> setMaximumSize(256, 21);
}
void MainWindow::createBrowserWindow()
{
browserWidget = new QWebEngineView(this);
}
void MainWindow::loadHomepage()
{
QUrl * url = new QUrl("http://google.ru");
loadUrl(*url);
delete(url);
}
void MainWindow::loadUrl (QUrl url)
{
browserWidget -> load(url);
}
void MainWindow::applyLayouts ()
{
barLayout = new QHBoxLayout();
barLayout -> setContentsMargins(0,0,0,0);
barLayout -> addWidget(barSelectCB);
barLayout -> addWidget(barBackBut);
barLayout -> addWidget(barNextBut);
barLayout -> addWidget(barUrlEdit);
barLayout -> addWidget(barRefreshBut);
barLayout -> addWidget(barEnterBut);
barWidget -> setLayout(barLayout);
mainLayout = new QVBoxLayout();
mainLayout -> setDirection(QBoxLayout::TopToBottom);
mainLayout -> setMenuBar(menuBar);
mainLayout -> addWidget (barWidget);
mainLayout -> addWidget (browserWidget);
setLayout(mainLayout);
}
To copy to clipboard, switch view to plain text mode
And project.pro file:
QT += widgets
QT += webenginewidgets
HEADERS = mainwindow.h
SOURCES = main.cpp \
mainwindow.cpp
QT += widgets
QT += webenginewidgets
HEADERS = mainwindow.h
SOURCES = main.cpp \
mainwindow.cpp
To copy to clipboard, switch view to plain text mode
It builds without errors and warnings, but works pretty bad. Sometimes it crashes at QApplication.exec(), sometimes in other places and always crashes after exit. Can you try to build my code and say me, what i'm doing wrong? I also have a backtrace (dont know how to use spoilers here, sorry):
[0726/170125:FATAL:resource_scheduler.cc(1051)] Check failed: client_map_.empty().
Backtrace:
GetHandleVerifier [0x000000018277DF66+28758]
QtWebEngineCore::URLRequestCustomJobDelegate::qt_static_metacall [0x00000001826DEA59+2499705]
QtWebEngineCore::JavaScriptDialogController::qt_static_metacall [0x0000000180BFA4CE+10049518]
QtWebEngineCore::JavaScriptDialogController::qt_static_metacall [0x000000018099B79C+7563964]
QtWebEngineCore::JavaScriptDialogController::qt_static_metacall [0x000000018099B29E+7562686]
QtWebEngineCore::JavaScriptDialogController::qt_static_metacall [0x00000001809B93D7+7685879]
QtWebEngineCore::JavaScriptDialogController::qt_static_metacall [0x00000001809B91F5+7685397]
QtWebEngineCore::JavaScriptDialogController::qt_static_metacall [0x00000001809A77B6+7613142]
QtWebEngineCore::JavaScriptDialogController::qt_static_metacall [0x000000018026BB01+28193]
QtWebEngineCore::URLRequestCustomJobDelegate::qt_static_metacall [0x000000018258F67A+1126554]
CertificateErrorController::error [0x00000001814ED607+5469703]
QtWebEngineCore::WebContentsAdapter::d_func [0x000000018021A9BD+100701]
GetHandleVerifier [0x0000000182817AFC+658412]
QtWebEngineCore::URLRequestCustomJobDelegate::qt_static_metacall [0x0000000182719709+2740521]
QtWebEngineCore::URLRequestCustomJobDelegate::qt_static_metacall [0x0000000182717331+2731345]
QtWebEngineCore::URLRequestCustomJobDelegate::qt_static_metacall [0x00000001827179D4+2733044]
GetHandleVerifier [0x000000018281B81C+674060]
GetHandleVerifier [0x000000018281D6D0+681920]
GetHandleVerifier [0x000000018281D625+681749]
QtWebEngineCore::URLRequestCustomJobDelegate::qt_static_metacall [0x0000000182719331+2739537]
QtWebEngineCore::URLRequestCustomJobDelegate::qt_static_metacall [0x000000018273B3FB+2879003]
QtWebEngineCore::URLRequestCustomJobDelegate::qt_static_metacall [0x0000000182719173+2739091]
QtWebEngineCore::URLRequestCustomJobDelegate::qt_static_metacall [0x000000018275EB8D+3024301]
QtWebEngineCore::JavaScriptDialogController::qt_static_metacall [0x00000001808F1846+6867814]
QtWebEngineCore::JavaScriptDialogController::qt_static_metacall [0x00000001808F2C1C+6872892]
QtWebEngineCore::URLRequestCustomJobDelegate::qt_static_metacall [0x000000018275F9CD+3027949]
QtWebEngineCore::URLRequestCustomJobDelegate::qt_static_metacall [0x0000000182768D45+3065701]
BaseThreadInitThunk [0x0000000076C5652D+13]
RtlUserThreadStart [0x0000000076E8C541+33]
[0726/170125:FATAL:resource_scheduler.cc(1051)] Check failed: client_map_.empty().
Backtrace:
GetHandleVerifier [0x000000018277DF66+28758]
QtWebEngineCore::URLRequestCustomJobDelegate::qt_static_metacall [0x00000001826DEA59+2499705]
QtWebEngineCore::JavaScriptDialogController::qt_static_metacall [0x0000000180BFA4CE+10049518]
QtWebEngineCore::JavaScriptDialogController::qt_static_metacall [0x000000018099B79C+7563964]
QtWebEngineCore::JavaScriptDialogController::qt_static_metacall [0x000000018099B29E+7562686]
QtWebEngineCore::JavaScriptDialogController::qt_static_metacall [0x00000001809B93D7+7685879]
QtWebEngineCore::JavaScriptDialogController::qt_static_metacall [0x00000001809B91F5+7685397]
QtWebEngineCore::JavaScriptDialogController::qt_static_metacall [0x00000001809A77B6+7613142]
QtWebEngineCore::JavaScriptDialogController::qt_static_metacall [0x000000018026BB01+28193]
QtWebEngineCore::URLRequestCustomJobDelegate::qt_static_metacall [0x000000018258F67A+1126554]
CertificateErrorController::error [0x00000001814ED607+5469703]
QtWebEngineCore::WebContentsAdapter::d_func [0x000000018021A9BD+100701]
GetHandleVerifier [0x0000000182817AFC+658412]
QtWebEngineCore::URLRequestCustomJobDelegate::qt_static_metacall [0x0000000182719709+2740521]
QtWebEngineCore::URLRequestCustomJobDelegate::qt_static_metacall [0x0000000182717331+2731345]
QtWebEngineCore::URLRequestCustomJobDelegate::qt_static_metacall [0x00000001827179D4+2733044]
GetHandleVerifier [0x000000018281B81C+674060]
GetHandleVerifier [0x000000018281D6D0+681920]
GetHandleVerifier [0x000000018281D625+681749]
QtWebEngineCore::URLRequestCustomJobDelegate::qt_static_metacall [0x0000000182719331+2739537]
QtWebEngineCore::URLRequestCustomJobDelegate::qt_static_metacall [0x000000018273B3FB+2879003]
QtWebEngineCore::URLRequestCustomJobDelegate::qt_static_metacall [0x0000000182719173+2739091]
QtWebEngineCore::URLRequestCustomJobDelegate::qt_static_metacall [0x000000018275EB8D+3024301]
QtWebEngineCore::JavaScriptDialogController::qt_static_metacall [0x00000001808F1846+6867814]
QtWebEngineCore::JavaScriptDialogController::qt_static_metacall [0x00000001808F2C1C+6872892]
QtWebEngineCore::URLRequestCustomJobDelegate::qt_static_metacall [0x000000018275F9CD+3027949]
QtWebEngineCore::URLRequestCustomJobDelegate::qt_static_metacall [0x0000000182768D45+3065701]
BaseThreadInitThunk [0x0000000076C5652D+13]
RtlUserThreadStart [0x0000000076E8C541+33]
To copy to clipboard, switch view to plain text mode
Bookmarks