新手必學 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
- 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();
- }
#p#
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,著名的桌面環境。
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