Qt从5.6开始就用Qt Webengine替换了Qt WebKit,据说加载速度较Qt WebKit更快。
需在pro中添加QT += webenginewidgets
一.效果
二.实现
1.JavaScript调用Qt函数
在MainWindow中定义成员变量QWebChannel *m_channel;作为和web通信的数据通道
①加载网页
void MainWindow::loadHtml()
{
m_channel = new QWebChannel(this);
m_channel->registerObject("CaoShangPa", this);// 这里注册对象名"CaoShangPa"需要与JS函数用到的名称一致
ui->htmlWebView->page()->setWebChannel(m_channel);
QString htmlPath = QCoreApplication::applicationDirPath() +"/html/index.html";
qDebug()<<htmlPath;
ui->htmlWebView->load(QUrl("file:///"+htmlPath));//或ui->htmlWebView->page()->load()
ui->htmlWebView->setContentsMargins(0,0,0,0);
}
registerObject的第二个参数可以是其他继承自QObject的类对象。这里为了简单起见