最近, Qt4.8.0终于正式release了,由于想用它带的QtWebkit 2.2.0,就下载了一个。
解包, 写编译脚本, 设置环境变量,在arm平台交叉编译成功生成了熟悉的几个Qt库以及plugins以后。
编以前的qtwebkit应用: 自己写的一个简单浏览器。
编译成功后, 发现跑起来以后,访问不了本地页面, 只能访问服务器页面,
我访问本地页面用的是如下语句: webView->load(QUrl("foo.html"));
这个foo.html跟可执行文件放在同目录下,以前在qt4.7.4版本下是可以正常访问的。
这肯定是版本升级带来的问题,怎么办? 查代码啊,有源码,咱不怕。
结果跟啊跟啊, 问题定位到QUrl里去了,
主要是这条语句:
QUrl baseUrl = QUrl::fromLocalFile(QFileInfo(url.toLocalFile()).absoluteFilePath());
baseUrl的值是/mnt/qtbrowser而不是/mnt/qtbrowser/foo.html, 把foo.html给丢了。
在看QUrl的方法toLocalFile()竟然返回了一个空字符串, 而不是foo.html,怪不得baseUrl没有foo.html了。
罪魁祸首还是在这个判断中:
if (d->scheme.compare(QLatin1String("file"), Qt::CaseInsensitive) != 0)
return false;
由于d->sc