記一次QT使用QAxWidget打開.html文件調用顯示離線百度地圖不能縮放,自定義圖片不能顯示解決方法


主要問題: 一開始用的是在線的,都沒有什么問題,自定義圖片都可以顯示,但是后面試了一下離線百度地圖,在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的編譯器

改一下代碼~

果然,問題直接解決~~~

(小本本記下來,下次忘了來看看)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM