如何在 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 默认为衬线字体?