Qt 簡介--Qt 類簡介專題(一)

Qt 簡介

 

Qt (發音同 cute)是一個跨平臺的C++開發工具,有時又被稱爲C++部件工具箱。Qt被用在KDE桌面環境、Opera、Google Earth、Skype、Adobe Photoshop Album和VirtualBox的開發中。它是挪威Qt Software 的產品,2008年6月17日被芬蘭的諾基亞(Nokia)公司收購,以增強該公司在跨平臺軟件研發方面的實力。

使用Qt開發的軟件,可以在任何支持的平臺上編譯與運行,而不需要修改源代碼。可以實現本平臺的圖形界面風格,也可實現其它平臺的圖形界面風格。比如可以在Microsoft Windows平臺下編譯出具有蘋果公司Mac OS圖形界面風格的應用程序。

經過多年發展,Qt不但擁有了完善的C++圖形庫,而且近年來的版本逐漸集成了數據庫、OpenGL庫、多媒體庫(Phonon)、網絡庫、腳本庫、XML庫、WebKit庫等等,其內核庫也加入了進程間通信、多線程等模塊,極大的豐富了Qt開發大規模複雜跨平臺應用程序的能力,真正意義上實現了其研發宗旨“Code Less; Create More; Deploy Anywhere.”。

Qt中使用了C++的非標準擴展,用在編譯前增加一個名爲moc的預處理器來實現,moc將Qt代碼處理成標準C++代碼。

Qt開放源代碼,並且提供自由軟件的用戶協議。使得它可以被廣泛地應用在各平臺上的開放源代碼軟件開發中。

2009年5月11日,諾基亞Qt Software 宣佈 Qt源代碼管理系統面向公衆開放,Qt 開發人員可通過爲 Qt 以及與 Qt 相關的項目貢獻代碼、翻譯、示例以及其他內容,協助引導和塑造 Qt未來的發展。爲了便於這些內容的管理,Qt Software 啓用了基於 Git 和 Gitorious 開源項目的Web 源代碼管理系統。

在推出開放式 Qt 代碼庫的同時,Qt Software 在其網站發佈了其產品規劃(Roadmap)。其中概述了研發項目中的最新功能,展現了現階段對 Qt 未來發展方向的觀點,以期鼓勵社區提供反饋和貢獻代碼,共同引導和塑造 Qt 的未來。

Qt 提供三種授權方式[2]:

Qt 商業版 – Qt 商業授權適用於開發專屬和/或商業軟件。此版本適用於不希望與他人共享源代碼,或者遵循 GNU 寬通用公共許可證 (LGPL) 2.1 版或 GNU GPL 3.0 版條款的開發人員。
GNU LGPL v. 2.1- Qt 4.5.0 及以後的版本開始遵循 GNU LGPL,這些版本的 Qt 適用於開發專屬或開源 Qt 應用程序,前提條件是必須遵循 GNU LGPL 2.1 版的條款。
GNU GPL v. 3.0 – 如果您希望將 Qt 應用程序與受 GNU 通用公共許可證 (GPL) 3.0 版本條款限制的軟件一同使用,或者您希望 Qt 應用程序遵循該 GNU許可證版本的條款,則此版本 Qt 適用於開發此類 Qt 應用程序。
關於如何正確選擇合適的Qt授權協議,可以參考: Qt GPL, LGPL&Commercial License [3]。

支持平臺

* Qt for X11:用於 X Window System (Unix、Linux、BSD)。支持 KDevelop IDE 集成
* Qt for Mac:用於 Apple Mac OS X。支持 Cocoa 和 Carbon 框架。支持以 Xcode 編輯、編譯和測試。
* Qt for Windows:用於 Microsoft Windows。支持 Visual Studio 集成
* Qt for Embedded Linux:用於嵌入式Linux。可以通過編譯移除不常使用的組件與功能。通過自己的視窗系統QWS,不需依賴X Window System,直接寫入Linux 幀緩衝。可以減少存儲器消耗。並提供虛擬幀緩衝 QVFb,方便在桌面系統上進行嵌入式測試。
* Qt for Windows CE:用於 Windows CE
* Qt for S60:用於 S60

語言綁定除了C++外,Qt還爲其它多種計算機語言提供了應用程序接口,您也可以使用這些語言開發Qt應用程序。

* PyQt:Python綁定
* QtRuby:Ruby綁定
* Qt Jambi:Java綁定
* Qyoto:C# 或其他 .NET 語言綁定,同時也是Kimono(KDE API 的 .NET 綁定)的基礎。
* QtAda:Ada綁定
* FreePascal QT4:Pascal綁定
* Perl Qt4:Perl綁定
* PHP Qt:PHP綁定
* Qt Haskell:Haskell綁定
* lqt:Lua綁定

Qt 的 hello world

#include <QtGui/QApplication>
#include <QtGui/QLabel> 

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QLabel label("Hello, world!");
    label.show();
    return app.exec();
}

Qt 附帶的工具

Qt Creator,輕量級的Qt/C++ IDE開發環境。
* Qt Designer,界面設計師。
* Qt Assistant,Qt文檔。
* Qt Liguist,翻譯工具,使得非開發的翻譯人員亦可進行翻譯
* qmake,跨平臺構建工具,可簡化跨不同平臺進行項目開發的構建過程。qmake 可以自動生成 Makefile,還可同樣生成 Microsoft Visual Studio 項目檔
* QVFb,虛擬幀緩存設備,模擬framebuffer設備(尺寸、色深),還可以通過skin模擬硬件鍵盤的佈局(包括特殊的按鍵),可以便捷在桌面系統機器上開發嵌入式程序

使用Qt開發的程序一些出名的例子如下:

* 谷歌地球,三維虛擬地圖軟件。
* eva,Linux版QQ聊天軟件。
* KDE,著名的桌面環境。
o KDELibs,一個許多KDE程序都使用的共享庫,如Amarok、K3b、KDevelop、KOffice等。
* Last.fm播放器,著名的互聯網音樂社區網站的桌面客戶端。
* LMMS,一個開放源碼的音樂編輯軟件
* LyX,使用Qt作爲界面的LaTeX軟件。
* MythTV,開源的數字視頻錄製軟件。
* Opera,著名的網頁瀏覽器。
* Qterm,Linux下的BBS軟件。
* Scribus,桌面排版軟件。
* Skype,一個使用人數衆多的基於P2P的VOIP聊天軟件。
* VirtualBox,虛擬機程序。
* Xconfig,Linux的Kernel配置工具
* VLC多媒體播放器,一個體積小巧、功能強大的開源媒體播放器,從0.9版開始有Qt界面。
* Adobe Photoshop Album
* Qt Extended

Qt 相關資料

Qt 官方網站 - http://qt.nokia.com/

Qt 中文官方網站 - http://qt.nokia.com/title-cn

Qt 在線文檔 - http://doc.qt.nokia.com/

Qt 社區 - http://qtcentre.org/

Qt for S60/Symbian開發 -http://www.forum.nokia.com/Resources_and_Information/Tools/Runtimes/Qt_for_S60/

Qt for Maemo (N800/N810) 開發 - http://qt4.garage.maemo.org/

Qt on Facebook – Click here to join

Qt on Twitter – Click here to follow

Qt on LinkedIn – Click here to join

Qt Video Hub 視頻中心 - http://u.youku.com/QtChina

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章