Qt

本條目存在以下問題，請協助改善本條目或在討論頁針對議題發表看法。

此條目包含指南或教學內容。 (2018年12月1日)
請藉由移除或重寫指南段落來改善條目，或在討論頁提出討論。

|

此條目需要更新。 (2018年12月1日)
請更新本文以反映近況和新增内容。完成修改後請移除本模板。

|

此條目介紹的是应用程序框架。关于其他用法，请见「Qt (消歧义)」。

使用Qt Designer做GUI設計

開發者|

* Trolltech（1991年－2008年）
* 諾基亞（2008年－2011年）
* Qt Project（2011年至今）
* Digia（2012年－2014年）
* The Qt Company（2014年至今）

当前版本|

* 6.7.2 (2024年6月19日；穩定版本)[1]

源代码库|

* code.qt.io/cgit/qt/qtbase.git/

编程语言| C++
操作系统| 跨平台
类型| 應用程式框架
许可协议| LGPL、GPL、商業授權[2]
网站| www.qt.io

Qt（/ˈkjuːt/，發音同「cute」[3][4][5]）是一个跨平台的C++應用程式開發框架。廣泛用於開發GUI程式，這種情況下又被称为部件工具箱。也可用於開發非GUI程式，例如控制台工具和伺服器。Qt被用於OPIE、Skype、VLC media player、Adobe Photoshop Elements、VirtualBox與Mathematica[6]以及被Autodesk [7][8]、歐洲太空總署[9]、夢工廠[10][11]、Google、HP[12]、KDE、盧卡斯影業[13]、西门子公司[14]、沃尔沃集团[15], 华特迪士尼动画制作公司[16]、三星集团[17]、飞利浦[18]、Panasonic [19]所使用。

Qt使用標準的C++和特殊的代码生成扩展（称为元对象编译器（Meta Object Compiler, moc））以及一些巨集。通過語言綁定，其他的程式語言也可以使用Qt。

Qt是自由且開放原始碼的軟體，在GNU較寬鬆公共許可證（LGPL）條款下發布。所有版本都支援廣泛的編譯器，包括GCC的C++編譯器和Visual Studio捆绑的MSVC编译器。

## 歷史

[编辑]

時間  | 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
2020年12月1日  | Qt 6.0
2021年4月27日  | Qt 6.1
2021年9月28日  | Qt 6.2
2022年3月16日  | Qt 6.3
2022年9月29日  | Qt 6.4
2023年3月30日  | Qt 6.5
2023年9月26日  | Qt 6.6
2024年3月19日  | Qt 6.7
预计 2024年9月25日  | Qt 6.8

Haavard Nord（德语：Haavard Nord）和Eirik Chambe-Eng（德语：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[20]。

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平台上。[21]

## 支持平台

[编辑]

使用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。[22][23]

### 外部移植

[编辑]

自從諾基亞開放了Qt的原始碼給社群後，Gitorious上各種移植紛紛出現。下面是其中一部份：

* Qt for OpenSolaris –用於OpenSolaris[24]
* Qt for Haiku –用於Haiku OS[25]
* Qt for OS/2 –仍然不完整的OS/2 eCS platform移植。[26]
* Qt-iPhone –用於iPhone的實驗中產品。[27]
* Android-Lighthouse –用於Android的實驗中產品。[28]
* Qt for webOS –用於Palm Pre上webOS的實驗中產品。[29] [30]
* Qt for Amazon Kindle DX –用於Amazon Kindle DX的實驗中產品。[31]

## 授权模式

[编辑]

Qt开放源代码，并且提供自由软件的用户协议。使得它可以被广泛地应用在各平台上的开放源代码软件开发中。

Qt提供三种授权方式。三种授权方式的功能、性能都没有区别，僅在于授权协议的不同。LGPL和GPL是免費发布，商业版則需收取授权费。[32]：

* 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 [33] \- 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应用程序。

Qt語言綁定 語言 | 名稱 - 綁定描述  | QtCore  | QtDesigner  | QtGui  | QtNetwork  | QtOpenGL  | QtSql  | QtScript  | QtSvg  | QtTest  | QtUiTools  | QtWebKit  | QtXml  | 開放原始碼軟體的授權 | 專有軟體的授權

|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

Ada | QtAda | 是  | 是  | 是  | 否[34] | 是  | 是  | 否  | 否  | 否  | 是  | 否  | 是  | 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  | 是  | 否[35] | 是  | 是  | 是  | 否  | 是  | 是  | 否  | 否  | 是  | 否  | 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提供了一些命令列和圖形工具，以方便和加速開發的過程。

* 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：桌面环境[36]
* Symbian自第四版开始

### 視窗管理員

[编辑]

以下的視窗管理員，使用了Qt：

* EggWM[37]
* integrity
* KWin
* qlwm
* deepin-wm

### 應用程式

[编辑]

一些出名的例子如下：

* 3DSlicer, a free open source software for visualization and medical image computing
* AcetoneISO：映像檔掛載軟體
* Adobe Photoshop Album, an image organizing application[38]
* Arora：一款跨平台的開源網頁瀏覽器
* Autodesk MotionBuilder：专业的3D角色动画软件
* Autodesk Maya, 3D建模和動畫軟體
* Autodesk 3ds Max
* 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[39]
* 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语音：又名“歪歪语音”，是一个可以进行在线多人语音聊天和语音会议的免费软件。在中国大陆拥有庞大的用户群。
* 咪咕音乐：中国移动打造的正版音乐播放器[40]
* WPS Office：金山公司（Kingsoft）出品的办公软件，与微软Office兼容性良好，个人版免费。

## 参见

[编辑]

維基教科書中的相關電子教程：Qt

* Qt Development Frameworks
* Qt Quick
* QML
* Advanced Component Framework

## 書目

[编辑]

* Summerfield, Mark, Advanced Qt Programming: Creating Great Software with C++ and Qt 4 1st, Addison-Wesley: 500, August 23, 2010  [2010-06-05], ISBN 978-0321635907, （原始内容存档于2010-05-25）
* Fitzek, Frank H. P.; Mikkonen, Tommi; Torp, Tony, Qt for Symbian 1st, Wiley: 160, May 17, 2010  [2010年1月30日], ISBN 0470750103, （原始内容存档于2009年12月19日）
* Blanchette, Jasmin; Summerfield, Mark, C++ GUI Programming with Qt 4 2nd, Prentice Hall: 752, February 14, 2008  [2010-01-30], ISBN 978-0132354165, （原始内容存档于2010-12-03）
* Summerfield, Mark, Rapid GUI Programming with Python and Qt 1st, Prentice Hall: 648, October 28, 2007  [2010-06-05], ISBN 978-0132354189, （原始内容存档于2009-03-31）
* Molkentin, Daniel, The Book of Qt 4: The Art of Building Qt Applications 1st, No Starch Press: 440, July 19, 2007  [2010-01-30], ISBN 978-1593271473, （原始内容存档于2010-02-11）
* Thelin, Johan, Foundations of Qt Development 1st, Apress: 528, August 3, 2007  [2010-01-30], ISBN 978-1590598313, （原始内容存档于2010-01-02）
* Dalheimer, Matthias, Programming with Qt 2nd, O'Reilly Media: 512, January 2002  [2010-01-30], ISBN 978-0596000646, （原始内容存档于2010-02-05）
* Ezust, Alan; Ezust, Paul, An Introduction to Design Patterns in C++ with Qt 4 1st, Prentice Hall: 656, September 10, 2006  [2010-01-30], ISBN 978-0131879058, （原始内容存档于2008-04-22）

## 参考文献

[编辑]

1. ^ Qt 6.7.2 Released. 2024年6月19日  [2024年6月19日] （英語）. 引文格式1维护：未识别语文类型 (link)
2. ^ Qt Licensing.  [2010-02-19]. （原始内容存档于2009-08-09）.
3. ^ Qt - About Us.  [2016-04-23]. （原始内容存档于2016-04-12）.
4. ^ That Smartphone Is So Qt. Ashlee Vance. 2010-02-16  [2010-02-19]. （原始内容存档于2011-10-07）.
5. ^ The Qt 4 Dance (video).  [2015-09-07]. （原始内容存档于2015-12-01）.
6. ^ Qt delivered advanced, cross-platform C++ GUI for Mathematica’s development team. （原始内容存档于2012-02-03）.
7. ^ Qt in Autodesk.  [2010-09-26]. （原始内容存档于2011-07-23）.
8. ^ Qt in visual effects.  [2010-09-26]. （原始内容存档于2011-07-23）.
9. ^ Qt in the European Space Agency.  [2010-09-26]. （原始内容存档于2011-07-23）.
10. ^ Behind the Scenes at DreamWorks Animation: Making the Apps that Make the Movies.  [2011-10-30]. （原始内容存档于2012-02-03）.
11. ^ UI & System Design Challenges for the NxG Lighting Tool.  [2011-10-30]. （原始内容存档于2012-02-03）.
12. ^ Developing Innovative Desktop and Embedded HP Products with Qt.  [2011-10-30]. （原始内容存档于2012-02-03）.
13. ^ Lucasfilm Entertainment Company Ltd..  [2011-10-30]. （原始内容存档于2012-02-03）.
14. ^ Qt helped Siemens deliver a C++ development platform for manufacturing software GUIs.  [2011-03-05]. （原始内容存档于2011-07-14）.
15. ^ Volvo Mobility Systems.  [2011-03-05]. （原始内容存档于2012-02-03）.
16. ^ Qt helped Walt Disney reduce development time spent on its cross-platform feature film production application.  [2011-03-05]. （原始内容存档于2012-02-03）.
17. ^ Qt in Home Media.  [2010-09-26]. （原始内容存档于2011-07-23）.
18. ^ Qt in IP Communications.  [2010-09-26]. （原始内容存档于2011-07-23）.
19. ^ Panasonic selects Qt for HD video system.  [2010-09-26]. （原始内容存档于2011-07-23）.
20. ^ A Brief History of Qt.  [2007-12-20]. （原始内容存档于2008-06-30）.
21. ^ Digia完成收购诺基亚已交出Qt全部业务_科技频道_凤凰网.  [2012-08-18]. （原始内容存档于2012-09-19）.
22. ^ Getting started with Lighthouse.  [17 December 2010]. （原始内容存档于2010年10月25日）.
23. ^ Kristian Høgsberg. Add wayland lighthouse plugin. 25 January 2011  [2011年10月30日]. （原始内容存档于2013年5月14日）.
24. ^ KDE on OpenSolaris.  [2010-03-21]. （原始内容存档于2010-02-20）.
25. ^ 存档副本.  [2010-01-30]. （原始内容存档于2010-03-07）.
26. ^ Qt 4 Application and UI Framework for eCS.  [2010-01-30]. （原始内容存档于2010-01-19）.
27. ^ 存档副本.  [2010-01-30]. （原始内容存档于2010-02-06）.
28. ^ 存档副本.  [2010-01-30]. （原始内容存档于2010-01-26）.
29. ^ Qt webOS port[永久失效連結]
30. ^ Blog: Qt on the Palm Pre.  [2010-03-21]. （原始内容存档于2010-03-11）.
31. ^ Blog: Qt on Amazon Kindle DX.  [2010-03-21]. （原始内容存档于2010-03-06）.
32. ^ 存档副本.  [2009-03-31]. （原始内容存档于2009-03-26）.
33. ^ 存档副本.  [2010-09-26]. （原始内容存档于2010-03-15）.
34. ^ 存档副本.  [2013-04-26]. （原始内容存档于2012-07-23）. Supported Qt modules in QtAda
35. ^ [1] （页面存档备份，存于互联网档案馆） Supported Qt modules in lqt
36. ^ Razor-qt Project.
37. ^ Egg Window Manager.  [2011-10-30]. （原始内容存档于2011-11-22）.
38. ^ Qt Software—Adobe Photoshop Elements Album.  [2009-12-27]. （原始内容存档于2009-07-20）.
39. ^ TOra uses the Qt library.  [2009-12-27]. （原始内容存档于2009-07-01）.
40. ^ Qt为中国移动音乐客户端提供多平台支持.  [2011-03-08]. （原始内容存档于2011-01-05）.

## 外部連結

[编辑]

* 官方网站
* 中文官方网站（页面存档备份，存于互联网档案馆）

* 查
* 论
* 编

技術|

* 元物件系統（英语：Meta-object System）
* Phonon
* QML
* QtScript
* Qt Quick（英语：Qt Quick）
* 訊號與槽（英语：Signals and slots）

工具|

* qmake
* Qt Creator

綁定|

* PHP-Qt（英语：PHP-Qt）
* PyQt
* PySide
* QtRuby
* Qt Jambi
* Qyoto

相關|

* Digia
* Nokia
* KDE
* Mer
* MeeGo
* Qt公司
* Qt計劃（英语：Qt Project）

* 查
* 论
* 编

KDE

軟體集|

* KDE 1
* KDE 2
* KDE 3
* KDE SC 4
* 第四版以后
* KDE Frameworks 5
* KDE Plasma 5
* KDE Plasma 6
* KDE Applications（英语：KDE Applications）

KDE核心
应用程序|

| 程式開發|

Cervisia（英语：Cervisia） · KDbg · KDESvn · KDevelop · KImageMapEditor（英语：KImageMapEditor） · Kompare · Kommander · Lokalize · Quanta Plus（英语：Quanta Plus） · Umbrello

|

教育|

Cantor（英语：Cantor） · Kalzium · KBibTeX（英语：KBibTeX） · KGeography（英语：KGeography） · KHangMan（英语：KHangMan） · Kig · Kiten · KmPlot · kst（英语：kst） · KStars · KTouch · KTurtle · LabPlot（英语：LabPlot） · RKWard · Step

遊戲|

KAtomic · KBounce · Kolf（英语：Kolf） · KMines · KTeaTime · KWeather

圖形|

digiKam · Gwenview · Karbon14 · KColorEdit · KolourPaint · KPhotoAlbum（英语：KPhotoAlbum） · KPovModeler · KRuler · Krita · KSnapshot · KuickShow · Okular · Skanlite（英语：Skanlite）

網際網路|

Akregator · Blogilo · ChoqoK · KGet · KFTPGrabber · KMail · KMess · KMLDonkey（英语：KMLDonkey） · KNetAttach · KNode · Konqueror · Konversation · Kopete · KPPP · KRDC · KTorrent · Rekonq

多媒體|

神龍播放器 · Frescobaldi（英语：Frescobaldi） · JuK · K3b · K9Copy · Kaffeine · Kdenlive · KMid · KMix · KMPlayer

辦公軟體|

Flow（英语：Calligra Flow） · KAddressBook · Kexi · Kile · KMyMoney · Kalendar · Kontact · KOrganizer · KPilot（英语：KPilot） · KWord · Plan · Stage · Skrooge · Tables · Tellico（英语：Tellico） · Words

系統|

Apper · Dolphin · KDE Partition Manager · KDE System Guard（英语：KDE System Guard） · KDiskFree · KDE信息中心 · Konsole · Yakuake

實用工具|

Ark · BasKet · Filelight（英语：Filelight） · Kate · KCalc · KCharSelect · KGpg · KJots · Klipper · KNotes · Krusader（英语：Krusader） · KRename · KWrite · RSIBreak · SuperKaramba（英语：SuperKaramba）

第三方
应用程序|

* Amarok
* QGIS
* Clementine
* Marble
* Mixxx

平臺|

Akonadi · Decibel · Flake · KConfig XT · KJS · KDOM · KHTML · KIO · Kiosk · KIPI · KParts · Kross · KSVG · NEPOMUK · Oxygen · Phonon · Solid · Sonnet · Soprano · Strigi · ThreadWeaver · XMLGUI · KDE Frameworks 5

| Freedesktop.org（共享）|

* AppStream
* D-Bus
* GStreamer
* NetworkManager
* Poppler
* Wayland
* X.Org Server
* PulseAudio

|

工作空間|

KDM · KWin · Plasma · 系统设置 · KDE Plasma 5

模块|

無障礙環境 · 管理 · 美工 · KDEBase · kdebase-workspace · 語言綁定 · 遊戲 · 圖像 · KDELibs · 多媒體 · 網絡 · 個人信息管理 · Kdepimlibs · 軟體開發套裝 · 玩具 · 工具 · 教育 · 網頁開發 · KOffice → Calligra Suite · Extragear

社区|

* KDE e.V.
* Akademy
* KDE.News
* Konqi

人物|

* 马蒂亚斯·卡勒·达尔海默（英语：Matthias Kalle Dalheimer）
* 马蒂亚斯·埃特里希
* 阿德里安·德赫罗特（英语：Adriaan de Groot (software developer)）
* 弗兰克·卡利切克
* 塞巴斯蒂安·屈格勒（英语：Sebastian Kügler）
* 西莉斯特·琳恩·保罗
* 努诺·皮涅罗
* 科内利乌斯·舒马赫
* 亞倫·塞戈
* David Vignoni（英语：David Vignoni）

分類•  專案（英语：Wikipedia:WikiProject KDE）•  Commons •  模板

* 查
* 论
* 编

部件工具箱列表（英语：List of widget toolkits）

低级|

| AmigaOS平台|

* Intuition（英语：Intuition (Amiga)）

|

Classic Mac OS和
macOS平台|

| 未知/原生|

* Macintosh Toolbox（英语：Macintosh Toolbox）

|

Object Pascal|

* Carbon

CLI|

| 桌面|

* Xamarin.Mac（英语：Xamarin#Xamarin.Mac）

|

移动端|

* Xamarin.iOS

Windows平台|

* Windows API

UNIX平台
X窗口系统|

* Xlib
* XCB
* X Toolkit Intrinsics、Xt、X-Toolkit

BeOS/Haiku平台|

* BeOS、ZETA、Haiku

跨平台|

| CLI|

* OpenTK（英语：OpenTK）

|

* GDK（英语：GDK）

Java|

* JOGL（英语：Java OpenGL）

Android平台|

| CLI|

* Xamarin.Android

|

高级|

| AmigaOS平台|

* BOOPSI（英语：BOOPSI）
* MUI（英语：Magic User Interface）
* ReAction GUI（英语：ReAction GUI）
* Zune（英语：Zune (widget toolkit)）

|

Classic Mac OS和
macOS平台|

| Object Pascal|

* Carbon
* MacApp（英语：MacApp）

|

Objective-C|

| 桌面|

* Cocoa

|

移动端|

* Cocoa Touch

C++|

* MacZoop（英语：MacZoop）
* PowerPlant（英语：PowerPlant）

Windows平台|

| CLI|

| 桌面|

* Windows Forms
* XAML（WinRT XAML（英语：Windows Runtime XAML Framework）、WPF）

|

C++|

* MFC
* ATL
* WTL
* SmartWin++（英语：SmartWin++）
* OWL

Object Pascal|

* VCL（英语：Visual Component Library）

UNIX平台
X窗口系统|

* Athena (Xaw)
* InterViews（英语：InterViews）
* LessTif（英语：LessTif）
* Motif
* OLIT（英语：OLIT）
* XForms（英语：XForms (toolkit)）

Android平台|

| C++|

* Qt for Android

|

跨平台
按语言划分|

| C|

* GTK+
* IUP（英语：IUP (software)）
* Tk
* wxC
* XForms（英语：XForms (toolkit)）
* XVT（英语：XVT）

|

C++|

* CEGUI（英语：CEGUI）
* CLX（英语：Component Library for Cross Platform）
* FLTK
* FOX toolkit（英语：Fox toolkit）
* GLUI（英语：OpenGL User Interface Library）
* Gtkmm
* JUCE（英语：JUCE）
* Nana（英语：Nana (C++ library)）
* Qt
* Rogue Wave Views（英语：Rogue Wave Software）
* TnFOX（英语：TnFOX）
* Ultimate++（英语：Ultimate++）
* VCF（英语：Visual Component Framework）
* Wt（英语：Wt (web toolkit)）
* WxWidgets
* YAAF（英语：YAAF）

Objective-C|

* GNUstep

CLI|

| 桌面|

* Gtk#
* Tao（英语：Tao Framework）（OpenTK（英语：OpenTK）、TaoClassic（英语：TaoClassic））
* wx.NET
* UIML.NET（英语：UIML）
* MonoGame（英语：MonoGame）

|

Web|

* Moonlight（英语：Moonlight (runtime)）

移动端|

* MonoGame（英语：MonoGame）
* Xamarin.Forms

* DFL
* DlangUI
* DWT
* GTK+
* QtD
* wxD

Flash|

* Apache Flex（MXML）

Haskell|

* Gtk2Hs
* wxHaskell（英语：wxHaskell）

Java|

| 桌面|

* AWT
* FXML（英语：FXML）（JavaFX）
* Qt Jambi
* |Swing
* SWT
* wx4j
* jUIML（英语：UIML）

|

Web|

* GWT
* FXML（英语：FXML）（JavaFX）

移动端|

* LWUIT（英语：Lightweight User Interface Toolkit）

JavaScript|

* Dojo Toolkit
* Echo
* Extjs
* Google Closure（英语：Google Closure Tools）
* JQuery UI
* Qooxdoo（英语：Qooxdoo）
* YUI

Common Lisp|

* CAPI（英语：LispWorks）
* CLIM（英语：Common Lisp Interface Manager）
* Common Graphics（英语：Allegro Common Lisp）
* Ltk
* McCLIM（英语：Common Lisp Interface Manager）

Lua|

* IUP（英语：IUP (software)）
* wxLua

Pascal|

| 桌面|

* LCL

|

移动端|

* LCL

Object Pascal|

| 桌面|

* CLX（英语：Component Library for Cross Platform）
* fpGUI（英语：fpGUI）
* IP Pascal（英语：IP Pascal）
* LCL

|

移动端|

* LCL

Perl|

* Perl/Tk

PHP|

* PHP-GTK（英语：PHP-GTK）
* PHP-Qt（英语：PHP-Qt）
* wxPHP（英语：wxPHP）

Python|

* PyGTK
* Pyjs（英语：Pyjs）
* PyQt
* PySide
* Tkinter
* WxPython

Ruby|

* Shoes
* QtRuby
* wxRuby

Tcl|

* Tcl/Tk

XML|

* Ample SDK（英语：Ample SDK）
* GladeXML
* Lively Kernel（英语：Lively Kernel）
* Pyjs（英语：Pyjs）
* Rialto Toolkit（英语：Rialto Toolkit）
* XAML
* XUI（英语：XML User Interface）
* XUL
* Wt（英语：Wt (web toolkit)）

*[查]: 查看该模板
*[论]: 讨论该模板
*[编]: 编辑该模板