主要問題: 一開始用的是在線的,都沒有什么問題,自定義圖片都可以顯示,但是后面試了一下離線百度地圖,在qt中運行打開.html文件和在電腦上面直接雙擊打開此文件顯示是有差異的,在qt生成的程序中,地圖界面不能縮放,而且自定義的圖片也顯示不出來,而在電腦上面直接點開此文件一切都正常的。 (就很詫異)
對了,還會提示“console”未定義
最后找到了問題:如果電腦上安裝了IE8或者之后版本的IE瀏覽器,Webbrowser控件會使用IE7兼容模式來顯示網頁內容。解決方法是在注冊表中為你的進程指定引用IE的版本號。
就是因為使用qt的QAxWidget控件,直接打開.html文件用的是低版本的ie內核所以會和在電腦上直接點開.html文件有差異;
解決辦法:
比如我的程序叫做untitled12.exe(debug文件內的程序文件名)
對於32位程序
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION
對於64位程序
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION
在對應的路徑下添加你程序名字,如untitled12.exe為名的value,DWORD值。
值選項:
11000 0x00002af8(我電腦上面的ie瀏覽器版本為11)
如圖:
續:
在解決上面那個問題后又出現新的問題,在使用qt和離線百度地圖交互時總是程序斷言,然后程序就直接退出,一直不知道什么原因,也是困擾了一天。(如下圖)
在百度上面搜索了好久,各種搜始終找不到解決辦法~~
然后看到Qt和百度地圖交互大多數在用QWebEngineView,我之前一直用的是QAxWidget控件來和百度地圖交互(雖然和在線地圖交互基本沒有多大問題,但是換成離線地圖問題就有點多了);於是我便換了QWebEngineView來與離線地圖進行交互,百度了一下也有很多例子;
QWebEngineView是不支持minGW的,於是我又在Qt內配置了MSVC2015的編譯器
改一下代碼~
果然,問題直接解決~~~
(小本本記下來,下次忘了來看看)