【发布时间】:2016-01-26 16:39:20
【问题描述】:
在运行我的代码时,我在尝试使用 QWebView 时遇到写访问冲突异常:
重现错误的最小可编译代码
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QtWebKitWidgets/QWebView>
#include <QUrl>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QWebView *wv = new QWebView(this);
wv->load(QUrl("http://steamcommunity.com/"));
setCentralWidget(wv);
}
MainWindow::~MainWindow()
{
delete ui;
}
pro文件还包括webkitwidgets和network:
QT += core gui webkitwidgets network
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = MyApp
TEMPLATE = app
SOURCES += main.cpp\
mainwindow.cpp
HEADERS += mainwindow.h
FORMS += mainwindow.ui
错误提示
我得到的错误如下所示:
ASSERTION FAILED: leftSide->category() != CalcOther && rightSide->category() != CalcOther
css\CSSCalculationValue.cpp(290) : WebCore::CSSCalcBinaryOperation::create
1 0354A5B7
2 02E58E41
3 02E59520
...
我无法提供堆栈跟踪,因为错误在一个 Qt 文件中,但这里是反汇编:
该错误仅发生在特定网页(例如 steamcommunity.com)上,而不会发生在其他网页上。是否有可能某些网站只是破坏了 Qt 的 API?
- 编译器:MSVC2013 x86
- Qt 版本:Qt 5.5.0
【问题讨论】:
-
这是一个 Qt 错误。您必须构建一个调试 Qt 以获得合理的回溯,然后报告它。
-
如何报告错误?他们会尽快修复它还是我应该使用旧版本的 Qt?
-
付费支持有其好处 :) 在bugreports.qt.io 报告错误 请注意,您应该使用最新的 5.5.1,而不是 5.5.0。
-
Qt WebKit 是一个已弃用的模块,您应该改用 WebEngine。
-
@MrEricSir 谢谢,我会看看。
标签: c++ qt access-violation qwebview