您好我正在尝试将QWebEngine URL设置为放置在工作目录中的index.html文件。
我试图通过将URL设置为./index.html
来使用该文件,但它似乎无法找到该文件。
这是放置文件的位置
内容(工作目录)
如何在不使用完整系统路径的情况下通过QWebEngine打开index.html?
这是我的代码
#include <QApplication>
#include <QWebEngineView>
int main(int argc, char *argv[])
{
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QApplication app(argc, argv);
QWebEngineView view;
view.setUrl(QUrl(QStringLiteral("file:///./index.html")));
view.resize(1024, 750);
view.show();
return app.exec();
}
答案 0 :(得分:2)
尝试将html文件移动到项目构建目录(您当前将其保留在源目录中)。然后你可以这样建立你的网址:
QUrl url = QUrl::fromLocalFile(QDir::currentPath() + "/index.html");
并将其设置为视图:
QWebEngineView view;
view.setUrl(url);
view.resize(1024, 750);
view.show();
答案 1 :(得分:0)
来自Import .tar file using Azure Data Factory
qDebug() << QUrl("main.qml").isRelative(); // true: no scheme
qDebug() << QUrl("qml/main.qml").isRelative(); // true: no scheme
qDebug() << QUrl("file:main.qml").isRelative(); // false: has "file" scheme
qDebug() << QUrl("file:qml/main.qml").isRelative(); // false: has "file" scheme
尝试:view.setUrl(QUrl(QStringLiteral(&#34; index.html&#34;)));
答案 2 :(得分:0)
正如Paolo在他的回答中指出的那样,您可能构建了非源代码,因此您的index.html
文件必须位于创建content.exe
的文件夹中,而不是源文件夹。
为了使这更简单,更安全,Qt支持通过Qt资源文件(.qrc)在.exe中嵌入文件。这些可以很容易地在Qt Creator中创建,一旦添加到项目中,嵌入的文件就会通过qrc:///
前缀进行访问。
因此,在您的示例代码中,在将.qrc文件添加到项目并向其添加index.html之后,您可以像这样调整代码:
view.setUrl(QUrl(QStringLiteral("qrc:///index.html")));
无论构建类型或位置如何,这都具有工作优势,并且比尝试将文件复制步骤添加到项目文件(或每次手动复制文件)要简单得多