我在QWebView小部件中打开本地html文件时出现问题。 所以,我这样做:
QWebView *myWebView = new QWebView;
myWebView->load(QUrl("qrc:/index.htm"));
当然,我在资源中添加了index.htm。但在QWebView中有白屏。 我尝试用Firefox打开本地文件,没关系。
我该怎么办才能修复它?
PS:htm-page使用js和css文件,但我也将它们添加到资源中。 PSS:另外,我试着这样做:
QFile res(":/index.htm");
res.open(QIODevice::ReadOnly|QIODevice::Text);
myWebView->setHtml(res.readAll());
但它没有帮助。
答案 0 :(得分:1)
我会先试试这个:
connect(myWebView, SIGNAL(loadFinished(bool)), this, SLOT(finishedLoad(bool)));
....
void finishedLoad(bool ok){
qDebug() << ok;
}
然后您将知道Web视图在加载时是否遇到错误。错误可能是由于html格式不正确等原因造成的。
另一种方法是将资源的内容加载到字符串中,然后:
myWebView->setHtml(stringFromResource);
答案 1 :(得分:1)
您是否尝试过将文件加载到QByteArray以验证其是否正确加载?
编辑:
像(未经测试,但你明白了):
QFile file(":/index.htm");
if(file.open(QIODevice::ReadOnly)) {
QByteArray dump = file.readAll();
qDebug() << "contents: " << dump;
} else {
qDebug() << "error: " << file.error();
}
error()
方法返回QFile::FileError
枚举。
答案 2 :(得分:1)
您的问题在于使用资源文件。以下是一些建议:
.qrc
- 文件(它是类似xml的文本文件),是否正确?您是否添加了前缀(<qresource prefix="/">
)等等<file alias="cut-img.png">images/cut.png</file>
这样的别名,然后您的文件可以从应用程序:/cut-img.png
访问。当然,不要忘记查看文档 - http://qt-project.org/doc/qt-4.8/resources.html
祝你好运!