自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

詳解QT中Webkit開發(fā)

移動(dòng)開發(fā)
WebKit 是一個(gè)開源項(xiàng)目,其起源可追溯到 K Desktop Environment (KDE),WebKit項(xiàng)目催生了面向移動(dòng)設(shè)備的現(xiàn)代 Web 應(yīng)用程序。

QTWebkit開發(fā),WebKit 是一個(gè)開源的瀏覽器引擎,與之相對(duì)應(yīng)的引擎有Gecko(Mozilla Firefox 等使用)和Trident(也稱MSHTML,IE 使用)。同時(shí)WebKit 也是蘋果Mac OS X 系統(tǒng)引擎框架版本的名稱,主要用于Safari,Dashboard,Mail 和其他一些Mac OS X 程序。

1、在Qt中使用 WebKit 瀏覽器核心

使用 QtWebKit 需要在工程文件(*.pro)中加入:

  1. QT +=webkit   
  2. QT += network 

2、QtWebKit的flash支持

QtWebKit 到固定的路徑(NPAPI插件廠商的安裝路徑)下載入flash控件,如果需要flash支持,確保一下文件存在:

  1. C:\WINDOWS\system32\Macromed\Flash\NPSWF32.dll 

npswf32.dll就是 QtWebKit 需要的flash插件,由 micromedia 官方提供。

3、使用qt插件

分發(fā)程序時(shí),需要打包 qt\plugins\imageformats 目錄內(nèi)的 dll 文件(它們是qt的圖形圖像插件),才能支持 jpg、png、gif等的圖形圖像格式;最好連 plugins\codecs 目錄內(nèi)的dll文件一起打包,他們是用來支持各種語(yǔ)言編碼的(包括中文支持);除此以外還有其他一些qt插件。

4、如果使用了qt插件,需要設(shè)置qt插件路徑

qt應(yīng)用程序需要指定加載qt插件的目錄,以便載入上面提到的 plugins\imageformats 、plugins\codecs 等目錄內(nèi)的dll文件。

標(biāo)準(zhǔn)方式是通過 qt.conf 文件(放在qt應(yīng)用程序相同文件夾內(nèi))設(shè)置插件目錄的路徑。但是qt.conf內(nèi)必須使用絕對(duì)路徑,這不太容易確定。

可以直接在應(yīng)用程序內(nèi)指定 qt插件的路徑,例如:

  1. QApplication aApp(argc,argv);  
  2. QApplication::setLibraryPaths(QStringList(QCoreApplication::applicationDirPath()+"/plugins/")); 

在調(diào)用 QCoreApplication::applicationDirPath() 前,必須先創(chuàng)建一個(gè) QApplication的對(duì)象

5、中文支持:

  1. QTextCodec *codec=QTextCodec::codecForName("GB2312");  
  2. QTextCodec::setCodecForLocale(codec);  
  3. QTextCodec::setCodecForCStrings(codec);  
  4. QTextCodec::setCodecForTr(codec); 

6、使用 windows api

只要 #include<windows.h>就可以向MFC一樣使用windows的api 函數(shù),以及windows的數(shù)據(jù)類型,例如:LPCTSTR。

為了保持跨平臺(tái)特性,在用到windows api 函數(shù) 和 windows數(shù)據(jù)類型的地方加上宏判斷:

  1. #ifdefined(Q_WS_WIN)  
  2. ... ...  
  3. #endif 

7、讓QtWebKit使用緩存

  1. QNetworkDiskCache *diskCache=newQNetworkDiskCache(this);  
  2. QString location=QDesktopServices::storageLocation(QDesktopServices::CacheLocation);  
  3. diskCache->setCacheDirectory(location);  
  4. this->ui->wndHtmlView->page()->networkAccessManager()->setCache(diskCache); 

QDesktopServices::storageLocation(QDesktopServices::CacheLocation);返回的是系統(tǒng)的緩存目錄的路徑

8、windows eclipse中無法啟動(dòng) debug , 會(huì)報(bào)錯(cuò):

  1. gdb: unknown target exception 0xc0000135 at 0x7c984ed1 

可能是因?yàn)橛?gdb.exe 啟動(dòng)你的程序時(shí)無法找到qt庫(kù)的dll, 只要在環(huán)境變量加入 qt/bin 的路徑就好了

9、windows7/vista 中的 UAC 支持

建一個(gè)資源文件 resource.rc ,內(nèi)容 :

  1. 1    24    "manifest.xml" 

資源類型為 24 , id 為 1 ,資源內(nèi)容在 manifest.xml 中; manifest.xml 的內(nèi)容為:

  1. <?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
  2. <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> 
  3. <assemblyIdentity 
  4. version="1.0.0.0" 
  5. processorArchitecture="X86" 
  6. name="test.exe.manifest" 
  7. type="win32" 
  8. /> 
  9. <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> 
  10. <security> 
  11. <requestedPrivileges> 
  12. <requestedExecutionLevel level="requireAdministrator" uiAccess="false"/> 
  13. </requestedPrivileges> 
  14. </security> 
  15. </trustInfo> 
  16. </assembly> 

在項(xiàng)目的 .pro (或 .pri) 文件中加入:

  1. RC_FILE = resource.rc 

(RC_FILE  只在 windows 平臺(tái)上有效),然后 clean project 重新編譯。

10、exe 版本信息 ,在資源文件中加入:

  1. # if defined(UNDER_CE)  
  2. #  include <winbase.h> 
  3. # else  
  4. #  include <winver.h> 
  5. # endif  
  6.  
  7. VS_VERSION_INFO VERSIONINFO  
  8.     FILEVERSION 1,0,0,0  
  9.     PRODUCTVERSION 1,0,0,0  
  10.     FILEFLAGSMASK 0x3fL  
  11. #ifdef _DEBUG  
  12.     FILEFLAGS VS_FF_DEBUG  
  13. #else  
  14.     FILEFLAGS 0x0L  
  15. #endif  
  16.     FILEOS VOS__WINDOWS32  
  17.     FILETYPE VFT_DLL  
  18.     FILESUBTYPE 0x0L  
  19.     BEGIN  
  20.        BLOCK "StringFileInfo"  
  21.         BEGIN  
  22.             BLOCK "040904B0"  
  23.             BEGIN  
  24.                 VALUE "CompanyName", "公司名字\0"  
  25.                 VALUE "FileDescription", "文件描述\0"  
  26.                 VALUE "FileVersion", "文件版本\0"  
  27.                 VALUE "ProductName", "產(chǎn)品名字\0"  
  28.                 VALUE "產(chǎn)品版本", "0.1.0\0"  
  29.                 VALUE "LegalCopyright", "版權(quán)信息\0"  
  30.             END  
  31.         END  
  32.     END  
  33. /* End of Version info */ 

小結(jié):WebKit是開源的Web瀏覽器引擎,WebKit支持移動(dòng)設(shè)備和手機(jī),包括iPhoneAndroid手機(jī)都是使用WebKit做為瀏覽器的核心。

【編輯推薦】

淺談Qt做文件瀏覽器

Qt/E服務(wù)器客戶端架構(gòu)

在Qt中如何寫控制臺(tái)程序

基于Qt Web瀏覽器設(shè)計(jì)與實(shí)現(xiàn)

Qt程序進(jìn)入等待睡眠的正確方法

責(zé)任編輯:zhaolei 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2011-09-09 17:24:39

Qt Webkit模塊

2011-09-01 14:04:45

QT Webkit插件

2011-08-29 10:01:27

QTWebkit插件

2011-09-01 15:22:16

Qt WebKitWebKit

2011-09-09 18:43:13

Qt Webkit瀏覽器

2011-10-13 14:26:12

Qt WebKitWebKit

2011-08-29 14:19:48

QtWebkit瀏覽器

2011-08-29 14:27:33

QTWebkit瀏覽器

2011-08-29 10:59:47

QtWebkit嵌入式

2011-06-20 09:26:38

Linux qtopia QT

2011-08-29 10:22:48

QtWebkit 模塊HTML文檔

2011-09-09 16:23:16

Android Web測(cè)試

2011-08-29 11:25:29

QTWebKit鼠標(biāo)

2011-08-29 14:10:03

QtWebkitFlash

2011-06-24 09:13:30

QT SDL

2011-06-28 13:38:15

Arm linux QT

2011-06-29 17:20:20

Qt 內(nèi)存 QOBJECT

2011-06-28 15:18:45

Qt 單例模式

2013-09-04 14:25:30

webkitwebApp開發(fā)

2011-06-24 14:17:58

Qt 容器類 QVector
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)