設置qt插件路徑


 

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插件

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

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

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

標准方式是通過 qt.conf 文件(放在qt應用程序相同文件夾內)設置插件目錄的路徑。但是qt.conf內必須使用絕對路徑,這不太容易確定。

可以直接在應用程序內指定 qt插件的路徑,例如:

QApplication aApp(argc,argv);

QApplication::setLibraryPaths(QStringList(QCoreApplication::applicationDirPath()+"/plugins/"));

在調用 QCoreApplication::applicationDirPath() 前,必須先創建一個 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 函數,以及windows的數據類型,例如:LPCTSTR。

為了保持跨平台特性,在用到windows api 函數 和 windows數據類型的地方加上宏判斷:

#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);返回的是系統的緩存目錄的路徑
8、windows eclipse中無法啟動 debug , 會報錯:gdb: unknown target exception 0xc0000135 at 0x7c984ed1

可能是因為用 gdb.exe 啟動你的程序時無法找到qt庫的dll, 只要在環境變量加入 qt/bin 的路徑就好了

9、windows7/vista 中的 UAC 支持

建一個資源文件 resource.rc ,內容 :

1    24    "manifest.xml"

資源類型為 24 , id 為 1 ,資源內容在 manifest.xml 中; manifest.xml 的內容為:
<?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", "產品名字\0"

                VALUE "產品版本", "0.1.0\0"

                VALUE "LegalCopyright", "版權信息\0"

            END

        END

    END

 

http://blog.sina.com.cn/s/blog_671732440100utyl.html


免責聲明!

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



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