fbpx
维基百科

Qt

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

Qt
使用Qt DesignerGUI設計
開發者
  • Trolltech(1991年-2008年)
  • 諾基亞(2008年-2011年)
  • Qt Project(2011年至今)
  • Digia(2012年-2014年)
  • The Qt Company(2014年至今)
当前版本
  • 6.6 (2023年10月10日;穩定版本)[1]
源代码库
  • code.qt.io/cgit/qt/qtbase.git/
编程语言C++
操作系统跨平台
类型應用程式框架
许可协议LGPLGPL商業授權[2]
网站www.qt.io

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德语Haavard NordEirik 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应用到AndroidiOSWindows 8平台上。[21]

支持平台 编辑

使用Qt开发的软件,相同的程式碼可以在任何支援的平台編譯與執行,而不需要修改原始碼。會自動依平台的不同,表現平台特有的图形界面风格。

  • Linux/X11:用於X Window System(如SolarisAIXHP-UXLinuxBSD)。支援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开放源代码,并且提供自由软件的用户协议。使得它可以被广泛地应用在各平台上的开放源代码软件开发中。

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—將資料庫整合至應用程式。支援所有主要的資料庫驅動包括ODBCMySQL、PSQL、SQLite、ibase、Oracle、Sybase、DB2。
    • QtSvg—支援SVG格式
    • QtWebKit—整合WebKit,提供了HTML瀏覽器引擎,便於在原生應用程式中嵌入網路內容和服務。
    • QtXml—提供了XML文檔的閱讀器和編寫器、支持SAXDOM
    • 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 StudioKDevelop
  • 下列模組用於Unix開發
    • QtDBus
  • 下列模組用於Windows開發
    • QAxContainer
    • QAxServer

圖形使用者介面 编辑

Qt的圖形使用者介面的基礎是QWidget。Qt中所有類型的GUI組件如按鈕、標籤、工具列等都衍生自QWidget,而QWidget本身則為QObject的子類別。Widget負責接收滑鼠,鍵盤和來自窗口系統的其他事件,並描繪了自身顯示在屏幕上。每一個GUI組件都是一個widgetwidget還可以作為容器,在其內包含其他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 [34] GNU GPL GMGPL + fee
C++ – native C++ LGPL LGPL or Proprietary + fee
C# & .NET Qyoto – See also for KDE
C# & .NET qt4dotnet(页面存档备份,存于互联网档案馆 LGPL LGPL
D語言 QtD(页面存档备份,存于互联网档案馆
道語言 DaoQt(页面存档备份,存于互联网档案馆 LGPL LGPL
Haskell
Harbour GNU GPL
Java Qt Jambi LGPL LGPL
Javascriptnode.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 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環境 编辑

視窗管理員 编辑

以下的視窗管理員,使用了Qt:

應用程式 编辑

一些出名的例子如下:

  • 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程式都使用的共享庫,如AmarokK3bKDevelopKOffice等。
  • 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:一個使用人數眾多的基於P2PVOIP聊天軟體。
  • 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兼容性良好,个人版免费。

参见 编辑

書目 编辑

  • 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, 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, 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.6 Released!. 2023年10月10日 [2023年10月10日] (英語). 
  2. ^ . [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. ^ . [2010-09-26]. (原始内容存档于2011-07-23). 
  8. ^ . [2010-09-26]. (原始内容存档于2011-07-23). 
  9. ^ . [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. ^ . [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. ^ . [2010-09-26]. (原始内容存档于2011-07-23). 
  18. ^ . [2010-09-26]. (原始内容存档于2011-07-23). 
  19. ^ . [2010-09-26]. (原始内容存档于2011-07-23). 
  20. ^ . [2007-12-20]. (原始内容存档于2008-06-30). 
  21. ^ Digia完成收购诺基亚已交出Qt全部业务_科技频道_凤凰网. [2012-08-18]. (原始内容于2012-09-19). 
  22. ^ . [17 December 2010]. (原始内容存档于2010年10月25日). 
  23. ^ Kristian Høgsberg. . 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. ^ . [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). 

外部連結 编辑

本條目存在以下問題, 請協助改善本條目或在討論頁針對議題發表看法, 此條目包含指南或教學內容, 2018年12月1日, 請藉由移除或重寫指南段落來改善條目, 或在討論頁提出討論, 此條目需要更新, 2018年12月1日, 請更新本文以反映近況和新增内容, 完成修改後請移除本模板, 此條目介紹的是应用程序框架, 关于其他用法, 请见, 消歧义, juː, 發音同, cute, 是一个跨平台的c, 應用程式開發框架, 廣泛用於開發gui程式, 這種情況下又被称为部件工具箱, 也可用於開發非gui程式, 例如控制台工具和. 本條目存在以下問題 請協助改善本條目或在討論頁針對議題發表看法 此條目包含指南或教學內容 2018年12月1日 請藉由移除或重寫指南段落來改善條目 或在討論頁提出討論 此條目需要更新 2018年12月1日 請更新本文以反映近況和新增内容 完成修改後請移除本模板 此條目介紹的是应用程序框架 关于其他用法 请见 Qt 消歧义 Qt ˈ k juː 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使用Qt Designer 做GUI設計開發者Trolltech 1991年 2008年 諾基亞 2008年 2011年 Qt Project 2011年至今 Digia 2012年 2014年 The Qt Company 2014年至今 当前版本6 6 2023年10月10日 穩定版本 1 源代码库code wbr qt wbr io wbr cgit wbr qt wbr qtbase wbr git wbr 编程语言C 操作系统跨平台类型應用程式框架许可协议LGPL GPL 商業授權 2 网站www wbr qt wbr ioQt使用標準的C 和特殊的代码生成扩展 称为元对象编译器 Meta Object Compiler moc 以及一些巨集 通過語言綁定 其他的程式語言也可以使用Qt Qt是自由且開放原始碼的軟體 在GNU較寬鬆公共許可證 LGPL 條款下發布 所有版本都支援廣泛的編譯器 包括GCC的C 編譯器和Visual Studio 目录 1 歷史 2 支持平台 2 1 外部移植 3 授权模式 4 Qt模块 4 1 圖形使用者介面 4 2 訊號與槽 4 3 布局管理 4 4 Main Window 4 5 Graphics View 4 6 無障礙環境 4 7 國際化 4 8 多執行緒 4 9 語言綁定 5 工具 6 Qt Solutions 7 使用 7 1 使用Qt的UI環境 7 2 視窗管理員 7 3 應用程式 8 参见 9 書目 10 参考文献 11 外部連結歷史 编辑時間 Qt版本1995年 Qt 1 01998年7月 Qt 1 41999年4月 Qt 1 4 41999年6月 Qt 2 02000年4月 Qt 2 12000年9月6日 Qt 2 22001年10月15日 Qt 3 02002年11月 Qt 3 12003年7月 Qt 3 22004年2月 Qt 3 32005年6月27日 Qt 4 02005年12月 Qt 4 12006年10月 Qt 4 22007年5月 Qt 4 32008年5月 Qt 4 42009年3月 Qt 4 52009年4月 Qt 4 5 12009年12月 Qt 4 62010年2月 Qt 4 6 22010年6月 Qt 4 6 32010年9月 Qt 4 72011年5月4日 Qt 4 7 32011年12月15日 Qt 4 82012年5月22日 Qt 4 8 22012年9月13日 Qt 4 8 32012年12月19日 Qt 5 02013年1月31日 Qt 5 0 12013年4月10日 Qt 5 0 22013年7月3日 Qt 5 12013年8月28日 Qt 5 1 12013年12月12日 Qt 5 22014年5月20日 Qt 5 32014年12月10日 Qt 5 42015年7月1日 Qt 5 52016年3月16日 Qt 5 62016年6月16日 Qt 5 72017年1月23日 Qt 5 82017年5月31日 Qt 5 92017年11月30日 Qt 5 102018年5月22日 Qt 5 112019年1月31日 Qt 5 122019年6月19日 Qt 5 132019年12月12日 Qt 5 142020年5月26日 Qt 5 15Haavard 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 h h版本的程式庫 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欄標籤 fieldMain 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 feeC Qt native C 是 是 是 是 是 是 是 是 是 是 是 是 LGPL LGPL or Proprietary feeC amp NET Qyoto See also Kimono for KDE 是 是 是 是 是 是 是 是 是 是 是 是C amp NET qt4dotnet 页面存档备份 存于互联网档案馆 LGPL LGPLD語言 QtD 页面存档备份 存于互联网档案馆 道語言 DaoQt 页面存档备份 存于互联网档案馆 LGPL LGPLHaskell Qt HaskellHarbour hbqt GNU GPL 否Java Qt Jambi 是 是 是 是 是 是 是 是 是 是 是 是 LGPL LGPLJavascript node js node qt 页面存档备份 存于互联网档案馆 僅有少數幾個類 否 僅有少數幾個類 否 否 否 否 否 僅有少數幾個類 否 否 否 BSD License BSD LicenseLisp CommonQt 页面存档备份 存于互联网档案馆 Bindings for Common Lisp 是 是 是 是 是 是 是 是 是 是 是 是 BSD License BSD LicenseLua lqt 页面存档备份 存于互联网档案馆 Bindings 是 否 35 是 是 是 否 是 是 否 否 是 否 MIT MITLua QtLua 页面存档备份 存于互联网档案馆 Bindings and script engine LGPL LGPLPascal FreePascal Qt4 页面存档备份 存于互联网档案馆 Perl PerlQt4 页面存档备份 存于互联网档案馆 是 是 是 是 是 是 是 是 是 是 是 是 GNU GPL 否PHP PHP Qt 是 是 是 是 是 是 是 是 是 是 是 是 LGPL LGPLPython PyQt has an associated text ISBN 0132354187 是 是 是 是 是 是 是 是 是 是 是 是 GNU GPL 专有 feePython PySide from OpenBossa a subsidiary of nokia 是 是 是 是 是 是 是 是 是 是 LGPL LGPLPython PythonQt 页面存档备份 存于互联网档案馆 LGPL LGPLR qtbase 页面存档备份 存于互联网档案馆 是 是 是 是 是 是 是 是 是 是 是 是 GPL 否Ruby QtRuby 是 是 是 是 是 是 是 是 是 是 是 是 LGPL LGPLTcl 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兼容性良好 个人版免费 参见 编辑維基教科書中的相關電子教程 QtQt 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 参考文献 编辑 Qt 6 6 Released 2023年10月10日 2023年10月10日 英語 引文格式1维护 未识别语文类型 link Qt Licensing 2010 02 19 原始内容存档于2009 08 09 Qt About Us 2016 04 23 原始内容存档于2016 04 12 That Smartphone Is So Qt Ashlee Vance 2010 02 16 2010 02 19 原始内容存档于2011 10 07 The Qt 4 Dance video 2015 09 07 原始内容存档于2015 12 01 Qt delivered advanced cross platform C GUI for Mathematica s development team 原始内容存档于2012 02 03 Qt in Autodesk 2010 09 26 原始内容存档于2011 07 23 Qt in visual effects 2010 09 26 原始内容存档于2011 07 23 Qt in the European Space Agency 2010 09 26 原始内容存档于2011 07 23 Behind the Scenes at DreamWorks Animation Making the Apps that Make the Movies 2011 10 30 原始内容存档于2012 02 03 UI amp System Design Challenges for the NxG Lighting Tool 2011 10 30 原始内容存档于2012 02 03 Developing Innovative Desktop and Embedded HP Products with Qt 2011 10 30 原始内容存档于2012 02 03 Lucasfilm Entertainment Company Ltd 2011 10 30 原始内容存档于2012 02 03 Qt helped Siemens deliver a C development platform for manufacturing software GUIs 2011 03 05 原始内容存档于2011 07 14 Volvo Mobility Systems 2011 03 05 原始内容存档于2012 02 03 Qt helped Walt Disney reduce development time spent on its cross platform feature film production application 2011 03 05 原始内容存档于2012 02 03 Qt in Home Media 2010 09 26 原始内容存档于2011 07 23 Qt in IP Communications 2010 09 26 原始内容存档于2011 07 23 Panasonic selects Qt for HD video system 2010 09 26 原始内容存档于2011 07 23 A Brief History of Qt 2007 12 20 原始内容存档于2008 06 30 Digia完成收购诺基亚已交出Qt全部业务 科技频道 凤凰网 2012 08 18 原始内容存档于2012 09 19 Getting started with Lighthouse 17 December 2010 原始内容存档于2010年10月25日 Kristian Hogsberg Add wayland lighthouse plugin 25 January 2011 2011年10月30日 原始内容存档于2013年5月14日 KDE on OpenSolaris 2010 03 21 原始内容存档于2010 02 20 存档副本 2010 01 30 原始内容存档于2010 03 07 Qt 4 Application and UI Framework for eCS 2010 01 30 原始内容存档于2010 01 19 存档副本 2010 01 30 原始内容存档于2010 02 06 存档副本 2010 01 30 原始内容存档于2010 01 26 Qt webOS port 永久失效連結 Blog Qt on the Palm Pre 2010 03 21 原始内容存档于2010 03 11 Blog Qt on Amazon Kindle DX 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 1 页面存档备份 存于互联网档案馆 Supported Qt modules in lqt Razor qt Project Egg Window Manager 2011 10 30 原始内容存档于2011 11 22 Qt Software Adobe Photoshop Elements Album 2009 12 27 原始内容存档于2009 07 20 TOra uses the Qt library 2009 12 27 原始内容存档于2009 07 01 Qt为中国移动音乐客户端提供多平台支持 2011 03 08 原始内容存档于2011 01 05 外部連結 编辑官方网站 nbsp 中文官方网站 页面存档备份 存于互联网档案馆 取自 https zh wikipedia org w index php title Qt amp oldid 79816948, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。