Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html QWebengineView:打开id为的本地文件_Html_Qt_Qt5_Qtwebengine_Qwebengineview - Fatal编程技术网

Html QWebengineView:打开id为的本地文件

Html QWebengineView:打开id为的本地文件,html,qt,qt5,qtwebengine,qwebengineview,Html,Qt,Qt5,Qtwebengine,Qwebengineview,我在Manjaro Linux上使用Qt WebEngine 5.14 我想打开id为的本地html文件,但以下代码不起作用。它说找不到文件 以下是代码: #include <QApplication> #include <QWebEngineView> int main(int argc, char *argv[]) { QApplication a(argc, argv); QWebEngineView view; //open remot

我在Manjaro Linux上使用Qt WebEngine 5.14

我想打开id为的本地html文件,但以下代码不起作用。它说找不到文件

以下是代码:

#include <QApplication>
#include <QWebEngineView>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QWebEngineView view;

    //open remote html with id is working
    //view.load(QUrl("https://cges30901.github.io/test/hash/test#p3"));

    //open local file is working
    //view.load(QUrl::fromLocalFile(a.applicationDirPath()+"/test.html"));

    //open local file with id is not working
    view.load(QUrl::fromLocalFile(a.applicationDirPath()+"/test.html#p3"));

    view.show();
    return a.exec();
}
#包括
#包括
int main(int argc,char*argv[])
{
质量保证申请a(argc、argv);
QWebEngineView视图;
//打开id为的远程html正在工作
//查看。加载(QUrl(“https://cges30901.github.io/test/hash/test#p3"));
//打开本地文件正在工作
//load(QUrl::fromLocalFile(a.applicationDirPath()+“/test.html”);
//打开id为的本地文件无效
load(QUrl::fromLocalFile(a.applicationDirPath()+“/test.html#p3”);
view.show();
返回a.exec();
}
这是test.html:

<!--?xml version='1.0' encoding='utf-8'?-->
<!DOCTYPE html>

<html lang="zh-hant" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8"/>
<title>test</title>
</head>
<body>
<p id="p1">This is paragraph 1</p>
<p id="p2">This is paragraph 2</p>
<p id="p3">This is paragraph 3</p>
<p id="p4">This is paragraph 4</p>
<p id="p5">This is paragraph 5</p>
<p id="p6">This is paragraph 6</p>
<p id="p7">This is paragraph 7</p>
<p id="p8">This is paragraph 8</p>
<p id="p9">This is paragraph 9</p>
<p id="p10">This is paragraph 10</p>
<p id="p11">This is paragraph 11</p>
<p id="p12">This is paragraph 12</p>
<p id="p13">This is paragraph 13</p>
<p id="p14">This is paragraph 14</p>
<p id="p15">This is paragraph 15</p>
<p id="p16">This is paragraph 16</p>
<p id="p17">This is paragraph 17</p>
<p id="p18">This is paragraph 18</p>
<p id="p19">This is paragraph 19</p>
</body>
</html>

测试
这是第1段

这是第2段

这是第3段

这是第4段

这是第5段

这是第6段

这是第7段

这是第8段

这是第9段

这是第10段

这是第11段

这是第12段

这是第13段

这是第14段

这是第15段

这是第16段

这是第17段

这是第18段

这是第19段


有人能教我如何打开id为的本地html文件吗?

问题

您正在尝试从路径为
../test.html\p3
的本地文件创建url。调用
QUrl::fromLocalFile
会产生类似
file:////test.html%23p3
无法加载

解决方案

首先将本地路径转换为URL。将片段添加到结果URL并显示它:

QUrl url = QUrl::fromLocalFile(a.applicationDirPath() + "/test.html");
url.setFragment("p3");
view.load(url);

然后它就会按预期工作。

谢谢!不知道有setFragment()。