Qt
Qt(/ˈkjuːt/,發音同「cute」[4][5][6])是一个跨平台的C++應用程式開發框架。廣泛用於開發GUI程式,這種情況下又被称为部件工具箱。也可用於開發非GUI程式,比如控制台工具和伺服器。Qt被用於OPIE、Skype、VLC media player、Adobe Photoshop Elements、VirtualBox與Mathematica[7]以及被Autodesk [8][9]、歐洲太空總署[10]、夢工廠[11][12]、Google、HP[13]、KDE、盧卡斯影業[14]、西门子公司[15]、沃尔沃集团[16], 华特迪士尼动画制作公司[17]、三星集团[18]、飞利浦[19]、Panasonic [20]所使用。
使用做GUI設計 | |
開發者 | |
---|---|
穩定版本 | 6.0.1[1] (2021年2月3日 ) |
預覽版本 | 6.1 Alpha[2] (2021年2月16日 ) |
源代码库 | |
编程语言 | C++ |
操作系统 | 跨平台 |
类型 | 應用程式框架 |
许可协议 | LGPL、GPL、商業授權[3] |
网站 | www |
它是Digia公司的产品。Qt使用標準的C++和特殊的代码生成扩展(称为元对象编译器(Meta Object Compiler, moc))以及一些巨集。通過語言綁定,其他的程式語言也可以使用Qt。
Qt是自由且開放原始碼的軟體,在GNU較寬鬆公共許可證(LGPL)條款下發布。所有版本都支援廣泛的編譯器,包括GCC的C++編譯器和Visual Studio。
歷史
時間 | Qt版本 |
---|---|
1995年 | Qt 1.0 |
1998年7月 | Qt 1.4 |
1999年4月 | Qt 1.4.4 |
1999年6月 | Qt 2.0 |
2000年4月 | Qt 2.1 |
2000年9月6日 | Qt 2.2 |
2001年10月15日 | Qt 3.0 |
2002年11月 | Qt 3.1 |
2003年7月 | Qt 3.2 |
2004年2月 | Qt 3.3 |
2005年6月27日 | Qt 4.0 |
2005年12月 | Qt 4.1 |
2006年10月 | Qt 4.2 |
2007年5月 | Qt 4.3 |
2008年5月 | Qt 4.4 |
2009年3月 | Qt 4.5 |
2009年4月 | Qt 4.5.1 |
2009年12月 | Qt 4.6 |
2010年2月 | Qt 4.6.2 |
2010年6月 | Qt 4.6.3 |
2010年9月 | Qt 4.7 |
2011年5月4日 | Qt 4.7.3 |
2011年12月15日 | Qt 4.8 |
2012年5月22日 | Qt 4.8.2 |
2012年9月13日 | Qt 4.8.3 |
2012年12月19日 | Qt 5.0 |
2013年1月31日 | Qt 5.0.1 |
2013年4月10日 | Qt 5.0.2 |
2013年7月3日 | Qt 5.1 |
2013年8月28日 | Qt 5.1.1 |
2013年12月12日 | Qt 5.2 |
2014年5月20日 | Qt 5.3 |
2014年12月10日 | Qt 5.4 |
2015年7月1日 | Qt 5.5 |
2016年3月16日 | Qt 5.6 |
2016年6月16日 | Qt 5.7 |
2017年1月23日 | Qt 5.8 |
2017年5月31日 | Qt 5.9 |
2017年11月30日 | Qt 5.10 |
2018年5月22日 | Qt 5.11 |
2019年1月31日 | Qt 5.12 |
2019年6月19日 | Qt 5.13 |
2019年12月12日 | Qt 5.14 |
2020年5月26日 | Qt 5.15 |
Haavard Nord和Eirik Chambe-Eng於1991年開始開發「Qt」,1994年3月4日創立公司,最早名為Quasar Technologies,然後更名為Troll Tech,之後又再次更名為Trolltech,中文名是「奇趣科技」,2008年6月17日被NOKIA公司收購,以增强该公司在跨平台软件研发方面的实力,更名Qt Software。
該工具包名為Qt是因為字母Q在Haavard的Emacs字體特別漂亮,而“t”代表“toolkit”,灵感來自Xt,X toolkit[21]。
2009年5月11日,诺基亚Qt Software宣布Qt原始碼管理系统面向公众开放,Qt开发人员可通过为Qt以及与Qt相关的项目贡献代码、翻译、示例以及其他内容,协助引导和塑造Qt未来的发展。为了便于这些内容的管理,Qt Software启用了基于Git和Gitorious开源项目的Web原始碼管理系统。
在推出开放式Qt代码库的同时,Qt Software在其網站发布了其产品规划(Roadmap)。其中概述了研发项目中的最新功能,展现了现阶段对Qt未来发展方向的观点,以期鼓励社区提供反馈和贡献代码,共同引导和塑造Qt的未来。2012年8月9日,Digia宣布已完成对诺基亚Qt业务及软件技术的全面收购,并计划将Qt应用到Android、iOS及Windows 8平台上。[22]
支持平台
使用Qt开发的软件,相同的程式碼可以在任何支援的平台上編譯與執行,而不需要修改原始碼。會自動依平台的不同,表現平台特有的图形界面风格。
- Linux/X11:用於X Window System(如Solaris、AIX、HP-UX、Linux、BSD)。支援KDevelop和Eclipse IDE集成
- Mac:用於Apple Mac OS X。基於Cocoa框架。支援Universal Binary。支援以Xcode编辑、編譯和測試。
- Windows:用於Microsoft Windows。支援Visual Studio集成,也可以使用MinGW編譯
- Embedded Linux:用於嵌入式Linux。可以透過編譯移除不常使用的组件與功能。透過自己的视窗系统QWS,不需依賴X Window System,直接写入Linux帧缓冲。可以减少記憶體消耗。並提供虚拟帧缓冲QVFb,方便在桌面系统上進行嵌入式測試。
- Windows CE / Mobile :用於Windows CE
- Symbian:用於Symbian platform
- Maemo/MeeGo:用於Maemo
- Wayland –用於Wayland顯示伺服器,Qt應用程式可以在運行時切換圖形後端,如X與Wayland。[23][24]
外部移植
自從諾基亞開放了Qt的原始碼給社群後,Gitorious上各種移植紛紛出現。下面是其中一部份:
授权模式
Qt开放源代码,并且提供自由软件的用户协议。使得它可以被广泛地应用在各平台上的开放源代码软件开发中。
Qt提供三种授权方式。三种授权方式的功能、性能都没有区别,僅在于授权协议的不同。LGPL和GPL是免費发布,商业版則需收取授权费。[33]:
- Qt商业版 - Qt商业授权适用于开发专属和/或商业软件。此版本适用于不希望与他人共享源代码,或者遵循GNU宽通用公共许可证(LGPL)2.1版或GNU GPL 3.0版条款的开发人员。提供了技術支援服務。可以任意的修改Qt的原始碼,而不需要公開。
- GNU LGPL v. 2.1- Qt 4.5.0及以后的版本开始遵循GNU LGPL。LGPL允許鏈結到它的軟體使用任意的許可證,可以被专属软件作为类库引用、发布和销售。可以购买支援服務。
- GNU GPL v. 3.0 - 如果您希望将Qt应用程序与受GNU通用公共许可证(GPL)3.0版本条款限制的软件一同使用,或者您希望Qt应用程序遵循该GNU许可证版本的条款,则此版本Qt适用于开发此类Qt应用程序。可以购买支援服務。
Qt模块
经过多年发展,Qt不但拥有了完善的C++图形库,而且近年来的版本逐渐整合了数据库、OpenGL库、多媒体库、网络、脚本库、XML库、WebKit库等等,其核心库也加入了进程间通信、多线程等模块,极大的丰富了Qt开发大规模复杂跨平台应用程序的能力,真正意义上实现了其研发宗旨“Code Less; Create More; Deploy Anywhere”。
由於各家編譯器規格不同,Qt本身為了跨平台相容性,能以「最低相容規格」來設計。因此Qt必須具備RTTI、动态创建、Persistence/Serialization的基礎建設,以及建構出自己的容器元件。
- 下列模組提供一般的軟體開發
- QtCore—QtCore模組是所有基於Qt的應用程式的基礎,提供信號與槽的物件間通訊機制、IO、事件和物件處理、多執行緒
- QtGui—包含了開發圖形使用者介面應用程式所需的功能。使用其支援的各個平台的原生圖形API。支援反鋸齒、向量形變。支持ARGB顶层widget
- QtMultimedia—提供了用於多媒體內容處理的QML類型集和C++類集。同時提供訪問攝像頭及音頻功能的API。包含的Qt音頻引擎支持三維音頻回放及管理。
- QtNetwork—提供了網路程式設計功能。支援通用協定,如HTTP、FTP和DNS,包括對非同步HTTP 1.1的支援。與較低層的TCP/IP和UDP協議,如QTcpSocket、QTcpServer和QUdpSocket
- QtOpenGL—提供在應用程式中使用OpenGL和OpenGL ES加入3D圖形。在Windows平台上亦支援Direct3D
- QtOpenVG-提供OpenVG绘图支持的一个插件
- QtScript—包含完全整合的ECMA標準指令碼引擎。提供信號與槽機制簡化物件間通訊和QtScript偵錯程式。
- QtScriptTools—額外的Qt Script組件
- QtSql—將資料庫整合至應用程式。支援所有主要的資料庫驅動包括ODBC、MySQL、PSQL、SQLite、ibase、Oracle、Sybase、DB2。
- QtSvg—支援SVG格式
- QtWebKit—整合WebKit,提供了HTML瀏覽器引擎,便於在原生應用程式中嵌入網路內容和服務。
- QtXml—提供了XML文檔的閱讀器和編寫器、支持SAX和DOM。
- QtXmlPatternsl—提供了XQuery和XPath引擎支持。
- Phonon—整合Phonon,支援跨平台應用程式播放音訊和視訊內容。Qt5開始不支援Phonon。
- Qt3Support—模塊提供兼容Qt 3.х.х版本的程式庫
- QtDeclarative [34] - engine for declaratively building fluid user interfaces in QML
- 作業於Qt附帶工具的模組
- QtDesigner—提供擴充Qt Designer的類別。
- QtUiTools
- QtHelp—協助整合線上文件到應用程式中。
- QtTest—提供單元測試框架和滑鼠和鍵盤類比功能。整合Visual Studio和KDevelop。
- 下列模組用於Unix開發
- QtDBus
- 下列模組用於Windows開發
- QAxContainer
- QAxServer
圖形使用者介面
Qt的圖形使用者介面的基礎是QWidget。Qt中所有類型的GUI組件如按鈕、標籤、工具列等都衍生自QWidget,而QWidget本身則為QObject的子類別。Widget負責接收滑鼠,鍵盤和來自窗口系統的其他事件,並描繪了自身顯示在屏幕上。每一個GUI組件都是一個widget,widget還可以作為容器,在其內包含其他Widget。
QWidget不是一個抽象類別。並且可以被放置在一個已存在的使用者介面中;若是Widget沒有指定父Widget,當它顯示時就是一個獨立的視窗、或是一個頂層widget。QWidget顯示能力包含了透明化及Double-Buffering。Qt提供一種託管機制,當Widget於建立時指定父物件,就可把自己的生命週期交給上層物件管理,當上層物件被釋放時,自己也被釋放。確保物件不再使用時都會被刪除。
訊號與槽
Qt利用訊號與槽(signals/slots)機制取代傳統的callback來進行物件之間的溝通。当操作事件发生的时候,物件會發送出一個訊號(signal);而槽(slot)則是一個函式接受特定信號並且執行槽本身設定的動作。信号與槽之間,則透過QObject的靜態方法connect來連結。
訊號在任何執行點上皆可發射,甚至可以在槽裡再發射另一個訊號,訊號與槽的連結不限定為一對一的連結,一個訊號可以連結到多個槽或多個訊號連結到同一個槽,甚至訊號也可連接到訊號。
以往的callback缺乏类型安全,在呼叫處理函數時,無法確定是傳遞正確型態的參數。但訊號和其接受的槽之間傳遞的資料型態必須要相符合,否則編譯器會提出警告。訊號和槽可接受任何數量、任何型態的參數,所以訊號與槽机制是完全类型安全。
訊號與槽機制也確保了低耦合性,發送信号的類別並不知道是哪個槽會接受,也就是說一個信号可以呼叫所有可用的槽。此機制會確保當在"連接"信号和槽時,槽會接受信号的參數並且正確執行。
布局管理
布局管理類別用於描述一個應用程序的用戶界面中的Widget是如何放置。當視窗縮放時,布局管理器會自動調整widget的大小、位置或是字型大小,確保他們相對的排列和用戶界面整體仍然保有可用性。
Qt內建的布局管理類型有:QHBoxLayout、QVBoxLayout、QGridLayout和QFormLayout。這些類別繼承自QLayout,但QLayout非繼承自QWidget而是直接源於QObject。他們負責widget的幾何管理。想要創建更複雜的版面配置,可以繼承QLayout來自訂版面配置管理員。
- QHBoxLayout:配置widget成橫向一列
- QVBoxLayout:配置widget成垂直一行
- QGridLayout:配置widget在平面網格
- QFormLayout:配置widget用於2欄標籤- field
Main Window
Qt提供了下列主視窗管理和相關的用戶界面組件的類別:
- QMainWindow:提供一個標準的應用程式主視窗。當中可以包括選單、工具列、狀態列、停駐元件等元件。
- QDockWidget:提供了一個可用於創建彈簧工具調色板或輔助窗口的widget。Dock widgets可以移、關閉、浮動為外部視窗。
- QToolBar:提供了一個通用的工具欄widget,可以放入一些不同的action有關的工具,如按鈕、下拉選單、comboboxes和spin boxes。
Graphics View
Graphics View提供了用于管理和交互大量定制的2D图形对象的平面以及可视化显示对象的视图widget,并支持缩放和旋转功能。
整个Graphics View框架提供一個以Item為基礎的model-view設計。由3个主要的類別组成,分别是QGrphicsItem、QGraphicsScene和QGraphicsView。若干View可以顯示一個Scene,Scene中則包含不同幾何形狀的Item。
該框架包括一個事件傳播的架構,讓在Scene上的Item有雙精度的互動能力。Item可以處理鍵盤事件,鼠標按下、移動、釋放和雙擊事件,他們也可以跟踪鼠標移動。
Graphics View使用BSP(二进制空间划分)树可非常快速地找到Item,因此即使是包含百万个Item的大型Scene,也能实时图形化显示。
KDE中的Plasma亦是基於Graphics View實現的。
無障礙環境
無障礙環境需要無障礙兼容的應用程式、輔助技術、以及輔助工具之間的合作。應用程式通常不會直接溝通輔助工具,而是通過一個輔助技術,這是一個應用程式和工具之間資訊交流的橋樑。使用者界面元素相關訊息,例如按鈕和滾動條,使用輔助技術來顯示。Qt支持Windows上的Microsoft Active Accessibility(MSAA)和Mac OS X上Mac OS X Accessibility。
無障礙相容的應用程式稱為AT-Servers,而輔助工具被稱為AT-Clients。Qt應用程式通常會是一個AT-Server,但特別的程式也可能如同AT-Client方式工作。
國際化
Qt的字體引擎能夠在同一時間正確的顯示各種不同的書寫系統。並且Qt內部使用Unicode編碼來儲存文字。
Qt的多國語言支援技術,可以讓應用程式中的文字全部使用英文撰寫,能夠在完全不需修改程式的狀況下,改變整個應用程式中的文字為另一個語系的文字,並能夠協助處理不同語言的單、複數問題。
獨立的翻譯檔案使得新增支援語言相當容易,同時翻譯檔案(.ts)為XML格式可以直接編輯或使用Qt Liguist進行翻譯,可讓無程式開發能力的翻譯者亦能獨自完成翻譯。Qt附帶的工具程式就能夠自動抽取需要翻譯的文字產生翻譯檔案。
多執行緒
Qt的執行緒支持是獨立於平台的執行緒類別,采用訊號與槽机制,实现类型安全的執行緒间通讯。這使得它易於開發具可移植性的多執行緒Qt應用程式。並能充分利用多核架构,获得最佳运行性能,還能根据可用的处理器内核数自动调整使用的執行緒数。多執行緒程式設計也是一個执行耗時操作而不会冻结用户界面的有效典范。
語言綁定
除了C++外,Qt还为其它多种计算机语言提供了应用程序接口,您也可以使用这些语言开发Qt应用程序。
語言 | 名稱 - 綁定描述 | QtCore | QtDesigner | QtGui | QtNetwork | QtOpenGL | QtSql | QtScript | QtSvg | QtTest | QtUiTools | QtWebKit | QtXml | 開放原始碼軟體的授權 | 專有軟體的授權 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Ada | QtAda | 是 | 是 | 是 | 否[35] | 是 | 是 | 否 | 否 | 否 | 是 | 否 | 是 | GNU GPL | GMGPL + fee |
C++ | Qt – native C++ | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | LGPL | LGPL or Proprietary + fee |
C# & .NET | Qyoto – See also Kimono for KDE | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | ||
C# & .NET | qt4dotnet页面存档备份,存于 | LGPL | LGPL | ||||||||||||
D語言 | QtD页面存档备份,存于 | ||||||||||||||
道語言 | DaoQt页面存档备份,存于 | LGPL | LGPL | ||||||||||||
Haskell | Qt Haskell | ||||||||||||||
Harbour | hbqt | GNU GPL | 否 | ||||||||||||
Java | Qt Jambi | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | LGPL | LGPL |
Javascript(node.js) | node-qt页面存档备份,存于 | 僅有少數幾個類 | 否 | 僅有少數幾個類 | 否 | 否 | 否 | 否 | 否 | 僅有少數幾個類 | 否 | 否 | 否 | BSD License | BSD License |
Lisp | CommonQt页面存档备份,存于 – Bindings for Common Lisp | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | BSD License | BSD License |
Lua | lqt页面存档备份,存于 - Bindings | 是 | 否[36] | 是 | 是 | 是 | 否 | 是 | 是 | 否 | 否 | 是 | 否 | MIT | MIT |
Lua | QtLua页面存档备份,存于 - Bindings and script engine | LGPL | LGPL | ||||||||||||
Pascal | FreePascal Qt4页面存档备份,存于 | ||||||||||||||
Perl | PerlQt4页面存档备份,存于 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | GNU GPL | 否 |
PHP | PHP-Qt | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | LGPL | LGPL |
Python | PyQt – has an associated text (ISBN 0132354187). | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | GNU GPL | 专有 + fee |
Python | PySide – from OpenBossa (a subsidiary of nokia). | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | LGPL | LGPL | ||
Python | PythonQt页面存档备份,存于 | LGPL | LGPL | ||||||||||||
R | qtbase页面存档备份,存于 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | GPL | 否 |
Ruby | QtRuby | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | LGPL | LGPL |
Tcl | qtcl页面存档备份,存于 | GNU GPL | 否 | ||||||||||||
語言 | 名稱 - 綁定描述 | QtCore | QtDesigner | QtGui | QtNetwork | QtOpenGL | QtSql | QtScript | QtSvg | QtTest | QtUiTools | QtWebKit | QtXml | 開放原始碼軟體的授權 | 專有軟體的授權 |
Qt的hello world
将下面的代码保存到Hello.cpp中
#include <QtWidgets/QApplication>
#include <QtWidgets/QLabel>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QLabel label("Hello, world!");
label.show();
return app.exec();
}
編譯與執行
- 新建一個文件夾,命名為Hello
- 將程式碼Hello.cpp放入Hello文件夾
- 在Hello文件夾執行下列命令
qmake -project
qmake
- 这个取决于您的系统与编译器设置
make/gmake/nmake
- 执行./release/Hello(在Windows中是release\Hello.exe)
工具
Qt提供了一些命令列和圖形工具,以方便和加速開發的過程。
- Qt Creator:輕量級的Qt/C++ IDE開發環境。
- qmake:跨平台构建工具,可简化跨不同平台进行项目开发的构建过程。
- Qt Designer:界面設計師。可以用拖拽的方式將Widget排放在界面上,支援版面配置,支援信號與槽編輯。
- Qt Assistant:Qt助手。Qt在線幫助文件查看工具。
- Qt Liguist:翻譯工具。讀取翻譯檔案(如.ts、.po)並為翻譯人員提供友好的翻譯介面。
- lupdate:从原始碼文件或其他资源檔案中提取需要翻译的字符串,并将之存入xml格式的.ts檔案中。
- lrelease:负责将.ts檔案转化为程序使用的.qm檔案。.qm檔會去掉.ts檔中所有的空白和未翻譯的內容,並將存儲格式壓縮。
- lconvert:用於翻譯檔案之間的格式轉換。
- QVFb:虚拟帧缓存设备,模擬framebuffer裝置(尺寸、色深),還可以透過skin模擬硬體鍵盤的布局(包括特殊的按鍵),可以便捷在桌面系統機器上開發嵌入式程式
- makeqpf:創建用於嵌入式設備的qpf格式。qpf是一種預先渲染的字體,直接保存成二進位內容,使用的時候可以用記憶體對映載入,從載入到繪製的過程不需要計算。
- uic:User Interface Compiler。從用戶界面的檔案(.ui)生成C++代碼。
- rcc:Resource Compiler。rcc工具根据.qrc檔案的内容将相关的資源在編譯過程中嵌入到Qt應用程序。
- qtconfig:基於X11的Qt的配置工具和在線幫助。
- qconfig:Qt Embedded(Linux和Windows CE)配置工具。
- qtdemo:Qt的實例和示範項目的加载器。
- qt3to4:協助移植Qt 3程式到Qt 4的工具。
- qdbusxml2cpp:QtDBus XML compiler。将xml格式的D-Bus介面描述轉換成為C++原始碼
- D-Bus Viewer:可以檢視D-Bus物件和信息的工具。
- Qt Visual Studio Add-in:Visual Studio集成
- Qt Eclipse Integration:Eclipse集成
Qt Solutions
Qt Solutions提供Qt額外的組件和工具,使Qt的開發更有效率。在Qt 4.5之後,Qt Solutions加入了LGPL的授權
- 平台和特定行業的組件和工具
- 整合Qt與特定第三方產品的組件和工具
- 尖端的元件和新的工具也會被直接加入在Qt框架中發布
使用
使用Qt的UI環境
- KDE Plasma Workspaces:著名的跨平台圖型環境。
- MeeGo:基于Linux的开源手机操作系统
- Motorola A760:UI以Qt/Embedded建構
- OPIE
- Qt Extended Improved
- Razor-qt:桌面环境[37]
- Symbian自第四版开始
應用程式
一些出名的例子如下:
- 3DSlicer, a free open source software for visualization and medical image computing
- AcetoneISO:映像檔掛載軟體
- Adobe Photoshop Album, an image organizing application[39]
- Arora:一款跨平台的開源網頁瀏覽器
- Autodesk MotionBuilder, professional 3D character animation software
- Autodesk Maya, 3D建模和動畫軟體
- Avidemux, a Free Software program designed for multi-purpose video editing and processing
- Avogadro:進階分子編輯器
- BOUML,a free uml toolbox
- chmcreator:开源的chm开发工具
- CineFX:一款跨平台、開源、免費、影片剪輯,特效與合成套裝
- CoCoA, a software for computations in commutative algebra
- Dash Express, an Internet-enabled personal navigation device
- DAZ Studio, a 3D figure illustration/animation application
- Doxygen:API文件產生器
- EAGLE, tool for designing printed circuit boards (PCBs)
- EiskaltDC++, a program that uses the Direct Connect protocol.
- Emergent:神經網路模擬器。
- FEKO, a software product for the simulation of electromagnetic fields
- eva:Linux版QQ聊天軟體。
- FreeCAD, a free and open source 3D-Solid and general purpose design CAD/CAE
- FreeMat:一個自由開源的數值計算環境和程式語言
- Full Tilt Poker, one of the most popular online poker programs
- Gadu-Gadu:即時通訊軟體
- Gambas, A free development environment based on a Basic interpreter
- GoldenDict:一款開源的字典軟體
- Google地球(Google Earth):三維虛擬地圖軟體。
- GNS:Cisco网络模拟器。
- Guitar Pro 6, a tablature editor
- 刺蝟大作戰:一個基於百戰天蟲的開源遊戲。
- Hydrogen, an advanced drum machine
- ImageVis3D, a volume ray-casting application
- Ipe:自由的向量圖形編輯器
- ISE Webpack, a freeware EDA tool for Windows and Linux developed by Xilinx
- Kadu, a Polish instant messenger using the Gadu-Gadu protocol
- KDELibs:一個許多KDE程式都使用的共享庫,如Amarok、K3b、KDevelop、KOffice等。
- KeePassX, a multi-platform port of KeePass, an open source password manager for Microsoft Windows
- Last.fm播放器:著名的網際網路音樂社群網站的桌面用戶端。
- Launchy:一個開放源碼的快捷啟動器
- LMMS:一個開放源碼的音樂編輯軟體
- LyX:使用Qt作為界面的LaTeX軟體。
- Mathematica:Linux和Windows版本使用Qt作為GUI
- Maxwell Render, a software package that aids in the production of photorealistic images from computer 3D model data
- Mixxx:跨平台的開放源碼DJ混音軟體
- MuseScore,一個WYSIWYG的樂譜編輯器
- MythTV:開源的數位視訊錄製軟體。
- Nuke, a node-based compositor
- PDFedit:自由的PDF編輯器
- PokerTH, an open source Texas hold 'em simulator
- Psi:一款XMPP網路協定的即時通訊軟體
- qBittorrent:自由的BitTorrent P2P客戶端
- QCad:一個用於二維設計及繪圖的CAD軟體
- Qjackctl, a tool for controlling the JACK Audio Connection Kit
- QSvn, a GUI Subversion client for Linux, UNIX, Mac OS X and Windows
- Opera:著名的網頁瀏覽器。
- Qt Creator, the free software cross-platform integrated development environment from Nokia
- Qterm:跨平台的BBS軟體。
- Quantum GIS:自由的桌面GIS
- Quassel IRC:跨平台的IRC客戶端
- QupZilla:跨平台的開放原始碼的Webkit網頁瀏覽器。
- RealFlow, a fluid and dynamics simulator for the 3D industry
- Recoll:桌面搜尋工具
- Rosegarden, a free software digital audio workstation program
- SciDAVis, a cross-platform plotting and data analysis program
- Scribus:桌面排版軟體。
- Skype:一個使用人數眾多的基於P2P的VOIP聊天軟體。
- SMPlayer:跨平台多媒體播放器
- Spotify, music streaming service.
- Stellarium:一款天文學的自由軟體
- TeamSpeak:跨平台的音效通訊軟體
- Texmaker:一款跨平台的開放源碼LaTeX編輯器
- TeXworks, It is a graphical user interface to the typesetting system TeX.
- Tlen.pl:波蘭人發明的即時通訊客戶端
- TOra, a database administration tool[40]
- UMPlayer:基於Mplayer的美觀多媒體播放器。
- UniversalIndentGUI,an application which helps the user to beautify, reformat or indent various kinds of code.
- Valknut, a program that uses the Direct Connect protocol
- VirtualBox:虛擬機器軟體。
- VisIt:一個開源型互動式并行可視化與圖形分析工具,用於查看科學數據。
- VisTrails, a scientific workflow management and visualization system
- VLC多媒體播放器:一個體積小巧、功能強大的開源媒體播放器。
- VoxOx, a unified communications software.
- WordPress, based on Qt for Maemo and Symbian
- wpa supplicant, a free software implementation of an IEEE 802.11i
- Xconfig:Linux的Kernel配置工具
- YY语音:又名“歪歪语音”,是一个可以进行在线多人语音聊天和语音会议的免费软件。在中国大陆拥有庞大的用户群。
- 咪咕音乐:咪咕音乐是中国移动倾力打造的正版音乐播放器[41]
- WPS Office:金山公司(Kingsoft)出品的办公软件,与微软Office兼容性良好,个人版免费。
書目
- Summerfield, Mark, 1st, Addison-Wesley: 500, August 23, 2010 [2010-06-05], ISBN 978-0321635907, (原始内容存档于2010-05-25)
- Fitzek, Frank H. P.; Mikkonen, Tommi; Torp, Tony, 1st, Wiley: 160, May 17, 2010 [2010年1月30日], ISBN 0470750103, (原始内容存档于2009年12月19日)
- Blanchette, Jasmin; Summerfield, Mark, 2nd, Prentice Hall: 752, February 14, 2008 [2010-01-30], ISBN 978-0132354165, (原始内容存档于2010-12-03)
- Summerfield, Mark, 1st, Prentice Hall: 648, October 28, 2007 [2010-06-05], ISBN 978-0132354189, (原始内容存档于2009-03-31)
- Molkentin, Daniel, 1st, No Starch Press: 440, July 19, 2007 [2010-01-30], ISBN 978-1593271473, (原始内容存档于2010-02-11)
- Thelin, Johan, 1st, Apress: 528, August 3, 2007 [2010-01-30], ISBN 978-1590598313, (原始内容存档于2010-01-02)
- Dalheimer, Matthias, 2nd, O'Reilly Media: 512, January 2002 [2010-01-30], ISBN 978-0596000646, (原始内容存档于2010-02-05)
- Ezust, Alan; Ezust, Paul, 1st, Prentice Hall: 656, September 10, 2006 [2010-01-30], ISBN 978-0131879058, (原始内容存档于2008-04-22)
参考文献
- . 2021-02-03 [2021-02-03].
- . 2021-02-16 [2021-02-16].
- . [2010-02-19]. (原始内容存档于2009-08-09).
- . [2016-04-23]. (原始内容存档于2016-04-12).
- . Ashlee Vance. 2010-02-16 [2010-02-19]. (原始内容存档于2011-10-07).
- (video). [2015-09-07]. (原始内容存档于2015-12-01).
- . (原始内容存档于2012-02-03).
- . [2010-09-26]. (原始内容存档于2011-07-23).
- . [2010-09-26]. (原始内容存档于2011-07-23).
- . [2010-09-26]. (原始内容存档于2011-07-23).
- . [2011-10-30]. (原始内容存档于2012-02-03).
- . [2011-10-30]. (原始内容存档于2012-02-03).
- . [2011-10-30]. (原始内容存档于2012-02-03).
- . [2011-10-30]. (原始内容存档于2012-02-03).
- . [2011-03-05]. (原始内容存档于2011-07-14).
- . [2011-03-05]. (原始内容存档于2012-02-03).
- . [2011-03-05]. (原始内容存档于2012-02-03).
- . [2010-09-26]. (原始内容存档于2011-07-23).
- . [2010-09-26]. (原始内容存档于2011-07-23).
- . [2010-09-26]. (原始内容存档于2011-07-23).
- . [2007-12-20]. (原始内容存档于2008-06-30).
- . [2012-08-18]. (原始内容存档于2012-09-19).
- . [17 December 2010]. (原始内容存档于2010年10月25日).
- Kristian Høgsberg. . 25 January 2011 [2011年10月30日]. (原始内容存档于2013年5月14日).
- . [2010-03-21]. (原始内容存档于2010-02-20).
- . [2010-01-30]. (原始内容存档于2010-03-07).
- . [2010-01-30]. (原始内容存档于2010-01-19).
- . [2010-01-30]. (原始内容存档于2010-02-06).
- . [2010-01-30]. (原始内容存档于2010-01-26).
- Qt webOS port
- . [2010-03-21]. (原始内容存档于2010-03-11).
- . [2010-03-21]. (原始内容存档于2010-03-06).
- . [2009-03-31]. (原始内容存档于2009-03-26).
- . [2010-09-26]. (原始内容存档于2010-03-15).
- . [2013-04-26]. (原始内容存档于2012-07-23). Supported Qt modules in QtAda
- 页面存档备份,存于 Supported Qt modules in lqt
- .
- . [2011-10-30]. (原始内容存档于2011-11-22).
- . [2009-12-27]. (原始内容存档于2009-07-20).
- . [2009-12-27]. (原始内容存档于2009-07-01).
- . [2011-03-08]. (原始内容存档于2011-01-05).