如何在 QWebview 中显示本地 HTML?

Posted

技术标签:

【中文标题】如何在 QWebview 中显示本地 HTML?【英文标题】:How do I display local HTML in QWebview? 【发布时间】:2012-03-15 00:19:46 【问题描述】:

我怀疑这是非常基本的,没有人愿意记录它。

我想从我的程序中编写一个 html 文件,然后将该文件加载到 QWebview 对象中。

当我打开 QtCreator 时,我可以导航到右侧 URL 块中的文件,它会显示在 QtCreator 中。当我编译并运行程序时,窗口是白色和空白的。

我也不希望目录硬编码,我希望它使用当前目录。

所以我猜有两个问题:

    如何编写 ???在下面获取名为“reportView”的QWebview对象来显示我的本地文件?

ui->reportView->load(QUrl("???"));

    为什么 QWebview 对象保持空白?我怀疑连接到 Google 文档时出现问题,因为我收到此错误:

QSslSocket: cannot call unresolved function SSLv23_client_method
QSslSocket: cannot call unresolved function SSL_CTX_new
QSslSocket: cannot call unresolved function SSL_library_init
QSslSocket: cannot call unresolved function ERR_get_error

谢谢。

【问题讨论】:

【参考方案1】:

来自网络

webView->load(QUrl("http://google.de"));

来自资源

webView->load(QUrl("qrc:///sample.html"));

从文件系统

webView->load(QUrl("file:///C:/sample.htm"));

不需要QUrl::FromLocalFile,不需要webView->show()

不客气!

【讨论】:

webView->load(QUrl("qrc:/sample.html")); 也适用于我:)【参考方案2】:

您可以使用QUrl::fromLocalFile,它将从绝对文件路径构造一个类似"file:///path/to/file.html" 的URL。

Google 使用 SSL,如果您在 Windows 上,则需要手动安装 OpenSSL 并将其 DLL 复制到 Windows 系统目录、Qt 安装的 bin 目录或您的最终可执行文件夹中。

其他平台应该已经安装了 OpenSSL 或包管理器来安装它。

【讨论】:

如果我静态构建它,它会自动包含这些 DLL 以进行分发,还是我需要更改 .pro 文件中的某些内容来设置它? 您必须使用选项“-openssl-linked”运行 Qt 的“配置”并重新编译 Qt(或者可能只是 QtNetwork 模块)。

以上是关于如何在 QWebview 中显示本地 HTML?的主要内容,如果未能解决你的问题,请参考以下文章

如何使 QWebView/QWebPage 默认为衬线字体?

如何让 QWebView 显示桌面通知?

如何从 PyQT 调用 javascript 函数

使用 PyQt4 显示 HTML 页面时出错 - QWebView

以交互模式在 qwebview 中打开 plotly

JWPlayer 在 Qt5 QWebView 中不可见