解析關(guān)于QT Webkit開發(fā)學習筆記
QT Webkit開發(fā)學習筆記是本文要介紹的內(nèi)容,主要是來學習QT中webkit的學習使用方法,具體內(nèi)容的實現(xiàn)來看本文詳解。
1、在Qt中使用 WebKit 瀏覽器核心
使用 QtWebKit 需要在工程文件(*.pro)中加入:
- QT +=webkit
- QT += network
2、QtWebKit的flash支持
QtWebKit 到固定的路徑(NPAPI插件廠商的安裝路徑)下載入flash控件,如果需要flash支持,確保一下文件存在:
- C:\WINDOWS\system32\Macromed\Flash\NPSWF32.dll
npswf32.dll就是 QtWebKit 需要的flash插件,由 micromedia 官方提供。
3、使用qt插件
分發(fā)程序時,需要打包 qt\plugins\imageformats 目錄內(nèi)的 dll 文件(它們是qt的圖形圖像插件),才能支持 jpg、png、gif等的圖形圖像格式;***連 plugins\codecs 目錄內(nèi)的dll文件一起打包,他們是用來支持各種語言編碼的(包括中文支持);除此以外還有其他一些qt插件。
4、如果使用了qt插件,需要設置qt插件路徑
qt應用程序需要指定加載qt插件的目錄,以便載入上面提到的 plugins\imageformats 、plugins\codecs 等目錄內(nèi)的dll文件。
標準方式是通過 qt.conf 文件(放在qt應用程序相同文件夾內(nèi))設置插件目錄的路徑。但是qt.conf內(nèi)必須使用絕對路徑,這不太容易確定。
可以直接在應用程序內(nèi)指定 qt插件的路徑,例如:
- QApplication aApp(argc,argv);
- QApplication::setLibraryPaths(QStringList(QCoreApplication::applicationDirPath()+"/plugins/"));
在調(diào)用 QCoreApplication::applicationDirPath() 前,必須先創(chuàng)建一個 QApplication的對象
5、中文支持:
- QTextCodec *codec=QTextCodec::codecForName("GB2312");
- QTextCodec::setCodecForLocale(codec);
- QTextCodec::setCodecForCStrings(codec);
- QTextCodec::setCodecForTr(codec);
6、使用 windows api
只要 #include<windows.h>就可以向MFC一樣使用windows的api 函數(shù),以及windows的數(shù)據(jù)類型,例如:LPCTSTR。
為了保持跨平臺特性,在用到windows api 函數(shù) 和 windows數(shù)據(jù)類型的地方加上宏判斷:
- #ifdefined(Q_WS_WIN)
- ... ...
- #endif
7、讓QtWebKit使用緩存
- QNetworkDiskCache *diskCache=newQNetworkDiskCache(this);
- QString location=QDesktopServices::storageLocation(QDesktopServices::CacheLocation);
- diskCache->setCacheDirectory(location);
- this->ui->wndHtmlView->page()->networkAccessManager()->setCache(diskCache);
- QDesktopServices::storageLocation(QDesktopServices::CacheLocation);
返回的是系統(tǒng)的緩存目錄的路徑
8、windows eclipse中無法啟動 debug , 會報錯:
- gdb: unknown target exception 0xc0000135 at 0x7c984ed1
可能是因為用 gdb.exe 啟動你的程序時無法找到qt庫的dll, 只要在環(huán)境變量加入 qt/bin 的路徑就好了
9、windows7/vista 中的 UAC 支持
建一個資源文件 resource.rc ,內(nèi)容 :
- 1 24 "manifest.xml"
資源類型為 24 , id 為 1 ,資源內(nèi)容在 manifest.xml 中; manifest.xml 的內(nèi)容為:
- <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
- <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
- <assemblyIdentity
- version="1.0.0.0"
- processorArchitecture="X86"
- name="test.exe.manifest"
- type="win32"
- />
- <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
- <security>
- <requestedPrivileges>
- <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
- </requestedPrivileges>
- </security>
- </trustInfo>
- </assembly>
在項目的 .pro (或 .pri) 文件中加入:
- RC_FILE = resource.rc
- (RC_FILE 只在 windows 平臺上有效)
然后 clean project 重新編譯
10、exe 版本信息 ,在資源文件中加入:
- # if defined(UNDER_CE)
- # include <winbase.h>
- # else
- # include <winver.h>
- # endif
- VS_VERSION_INFO VERSIONINFO
- FILEVERSION 1,0,0,0
- PRODUCTVERSION 1,0,0,0
- FILEFLAGSMASK 0x3fL
- #ifdef _DEBUG
- FILEFLAGS VS_FF_DEBUG
- #else
- FILEFLAGS 0x0L
- #endif
- FILEOS VOS__WINDOWS32
- FILETYPE VFT_DLL
- FILESUBTYPE 0x0L
- BEGIN
- BLOCK "StringFileInfo"
- BEGIN
- BLOCK "040904B0"
- BEGIN
- VALUE "CompanyName", "公司名字\0"
- VALUE "FileDescription", "文件描述\0"
- VALUE "FileVersion", "文件版本\0"
- VALUE "ProductName", "產(chǎn)品名字\0"
- VALUE "產(chǎn)品版本", "0.1.0\0"
- VALUE "LegalCopyright", "版權(quán)信息\0"
- END
- END
- END
- /* End of Version info */
小結(jié):解析關(guān)于QT Webkit開發(fā)學習筆記的內(nèi)容介紹完了,希望通過本文的學習能對你有所幫助!