[轉載] QT開發簡介

QT開發簡介

 
Qt開發平臺

    Qt是諾基亞開發的一個跨平臺的C++圖形用戶界面應用程序框架。html

    它提供給應用程序開發者創建藝術級的圖形用戶界面所需的所用功能。Qt是徹底面向對象的, 很容易擴展,而且容許真正地組件編程。自從1996年早些時候,Qt進入商業領域,它已經成爲全世界範圍內數千種成功的應用程序的基礎。Qt也是流行的 Linux桌面環境KDE 的基礎。 基本上,Qt 同 X Window 上的 Motif,Openwin,GTK 等圖形界 面庫和 Windows 平臺上的 MFC,OWL,VCL,ATL 是同類型的東西,但Qt具備優良的跨平臺特性、面向對象 、豐富的API、大量的開發文檔等優勢。web

 

 

QT開發環境正則表達式

    Qt Creator是一個用於Qt開發的輕量級跨平臺集成開發環境。Qt Creator可帶來兩大關鍵益處:提供首個專爲支持跨平臺開發而設計的集成開發環境 (IDE),並確保首次接觸Qt框架的開發人員能迅速上手和操做。編程

  Qt Creator包含了一套用於建立和測試基於Qt應用程序的高效工具,包括:瀏覽器

  一個高級的C++代碼編輯器 上下文感知幫助系統 可視化調試器 源代碼管理 項目和構建管理工具安全

    QT for Symbian 開發環境搭建:網絡

http://www.developer.nokia.com/Community/Wiki/Qt_Symbian_開發環境安裝 框架

 

Qt優點  異步

    面向對象編輯器

  Qt 的良好封裝機制使得 Qt 的模塊化程度很是高,可重用性較好,對於用戶開發來講是很是 方便的。 Qt 提供了一種稱爲 signals/slots 的安全類型來替代 callback,這使得各個元件 之間的協同工做變得十分簡單。

    豐富的 API

  Qt包括多達 250 個以上的 C++ 類,還提供基於模板的 collections, serialization, file, I/Odevice, directory management, date/time 類。甚至還包括正則表達式的處理功能。

  支持 2D/3D 圖形渲染,支持 OpenGL

  大量的開發文檔

  XML 支持

  Webkit 引擎的集成,能夠實現本地界面與Web內容的無縫集成

  可是真正使得 Qt 在自由軟件界的衆多 Widgets (如 Lesstif,Gtk,EZWGL,Xforms,fltk 等等)中脫穎而出的仍是基於 Qt 的重量級軟件 KDE 。

 

 

個人問題:

1:如何 用 Qt 訪問 https ?

Qt 是支持 SSL的,可是因爲某些法律和政策因素,QT的開發包裏並無集成openSSL。QT採用兩種方式調用openSSL,默認方式是動態加載openSSL的 DLL。
在Windows系統上默認沒有openSSL,須要本身安裝。 能夠在這裏下載源代碼,本身編譯
http://www.openssl.org/source/
也能夠在這裏下載編譯好的版本,直接安裝
http://www.slproweb.com/products/Win32OpenSSL.html

若是要靜態連接ssl,那就要本身從新編譯QT才行,首先設置環境變量 OPENSSL_LIBS,指向你的openSSL的lib目錄,而後執行configure的時候使用如下參數
configure -openssl-linked

使用方法和簡單和普通的 http請求沒什麼不一樣。

QUrl url(http://code.google.com");
QHttp *http = new QHttp();
http->setHost(url.host(), QHttp::ConnectionModeHttps, url.port());
QFile *file = new QFile("index.htm");
file->open(QIODevice::WriteOnly)
int httpGetId = http->get(path, file);

因爲QHttp是異步調用,你須要鏈接幾個signal來獲取下載進度。
在S60平臺,以上代碼也是能夠運行的,須要注意的是在 Qt 4.6 beta版本里我懷疑有個bug,qt會在s60上試圖去加載 ssleay32.dll,可是在s60上openSSL的DLL名字是 libssl.dll。這個問題已經在最新的 QT 4.6 正式版本里修復了,請更新到最新的QT. 另外,若是以上代碼在 S60上運行,這個 index.htm文件會被建立在程序的私有目錄裏,這個目錄是文件管理器看不到的,因此要改爲 相似 c:\\index.htm的名字,好用來驗證下載是否正確。  

如今的 QT 其實並不推薦繼續使用 QHttp了,應該用 QNetworkAccessManager,這是一個更先進的網絡鏈接服務,其行爲和你的瀏覽器基本一致,包括了代理和緩衝的支持,因此這也是QT webkit使用的鏈接方式。

 

 

2: 怎樣在 S60 Qt 程序裏調用 Symbian API

Qt程序啓動的時候已經具有了基本的調用 Symbian API的環境,cleanupstack, ActiveScheduler 都有了。

因此能夠直接包含Symbian的頭文件,就像普通Symbian 程序裏面那樣調用就行了,惟一的問題是怎麼包含library.
qt是用 pro描述工程文件的,那個mmp文件其實是qmake經過 pro文件生成的,因此不能在mmp里加 library,這樣的話你從新執行qmake就要從新改mmp.

正確的方法是,在pro文件裏添加下面這行

symbian:LIBS += -l<lib file name>

例如:symbian:LIBS += -lcommonengine,  生成的 mmp文件裏就會有  LIBRARY commonengine.lib
注意若是是 DLL的 lib,在 pro文件裏是不須要寫lib擴展名的,若是你寫了,qmake就會認爲你須要的是一個static library, 就會生成  STATICLIBARAY commonengine.lib

 

轉載:http://blog.51cto.com/lhqvip

相關文章
相關標籤/搜索