Qt(/ˈkjuːt/、発音は「キュート」[ 7 ] [ 8 ] )は、グラフィカルユーザーインターフェイスや、Linux、Windows、macOS、Android 、組み込みシステムなどのさまざまなソフトウェアおよびハードウェアプラットフォーム上で動作するクロスプラットフォームアプリケーションを作成するためのクロスプラットフォームアプリケーション開発フレームワークです。基盤となるコードベースをほとんどまたは全く変更することなく、ネイティブな機能と速度を備えたネイティブアプリケーションとして動作します。
Qt は現在、上場企業であるThe Qt Companyと、 Qt の発展のために活動する個人開発者や組織が参加するオープンソース ガバナンスの下でQt プロジェクトによって開発されています。 [ 9 ] [ 10 ] [ 11 ] Qt は商用ライセンス[ 4 ]とオープンソース[ 12 ] GPL 2.0、GPL 3.0、LGPL 3.0 ライセンスの両方で利用可能です。[ 5 ] [ 6 ]
Qt は、主要なデスクトッププラットフォームおよびモバイルまたは組み込みプラットフォームで動作するグラフィカル ユーザー インターフェイス(GUI) およびマルチ プラットフォームアプリケーションの開発に使用されます。Qt で作成されたほとんどの GUI プログラムはネイティブ インターフェースのような外観を持ち、その場合 Qt はウィジェット ツール キットに分類されます。コマンドラインツールやサーバー用コンソールなど、GUI 以外のプログラムも開発できます。Qt を使用したそのような非 GUI プログラムの例としては、Cutelyst Web フレームワークがあります。[ 13 ]
Qt は、 GCCやClang C++ コンパイラ、Visual Studioスイートなど、さまざまな C++ コンパイラをサポートしています。また、Python バインディング[ 14 ]を介したPythonやPHP5 の拡張機能[ 15 ]を介したPHPなど、バインディングや拡張機能によって他の言語もサポートしており、国際化も幅広くサポートしています。さらに、Qt はQt Quickも提供しており、これにはJavaScriptを使用してロジックを記述できるQMLと呼ばれる宣言型スクリプト言語が含まれています。Qt Quick により、モバイル デバイス向けのアプリケーションを迅速に開発することが可能になり、同時に、最高のパフォーマンスを実現するためにロジックをネイティブ コードで記述することもできます。
その他の機能としては、SQLデータベースへのアクセス、XML解析、JSON解析、スレッド管理、ネットワークサポートなどがあります。
Qt Framework の最新バージョンは Qt 6.11 で、2026 年 3 月 23 日にリリースされました。[ 16 ]
また、バージョン6.10は2026年10月7日まで、バージョン6.8 LTSは2029年10月8日まで引き続きサポートされます。バージョン6.5 LTSは、商用ユーザーのみ2026年4月3日までサポートされます。さらに、バージョン5.0(2012年リリース)以降のすべてのバージョンについて、商用ユーザー向けに延長サポートが提供されています。[ 17 ]
Qt のマイナー バージョンは通常、年に 2 回リリースされ、標準サポート条件の下ではリリース日から 1 年間サポートされます。通常、3 つ目のマイナー バージョンごとに、追加のパッチが提供される長期サポートバージョンになります。LTS バージョンは、商用ユーザー向けにリリース日から 5 年間 (バージョン 6.8 の 3 年前) までサポートされます。[ 17 ]
2017年、Qt社は、70以上の業界にわたる約100万人の開発者コミュニティが存在すると推定した[ 18 ] 。 [ 19 ]

Qt/QMLをウィジェットツールキットとして利用するグラフィカルユーザーインターフェースおよびデスクトップ環境:
多くの著名なオープンソースまたはプロプライエタリなクロスプラットフォームソフトウェアはQtまたはQMLを使用しています: [ 34 ]
Qtは、以下のような幅広い企業や組織で利用されています。

Qtは以下の重要な概念に基づいて構築されています。
Qt は最初にリリースされたとき、独自のペイント エンジンとコントロールを使用して、ウィジェットを描画するときに実行中のさまざまなプラットフォームの外観をエミュレートしていました。これにより、Qt のクラスで実際にターゲット プラットフォームに依存するものが非常に少なかったため、移植作業が容易になりました。ただし、このエミュレーションが不完全な場合、わずかな不一致が生じることがありました。最近のバージョンの Qt は、ネイティブ ウィジェット セットを持つプラットフォームで、さまざまなプラットフォームのネイティブ スタイルの API を使用してメトリックを照会し、ほとんどのコントロールを描画するため、このような問題に悩まされることは少なくなっています。[ 93 ]一部のプラットフォーム (MeeGo や KDE など) では、Qtがネイティブ APIです。他のいくつかのポータブル グラフィカル ツールキットは、異なる設計上の決定を下しています。たとえば、wxWidgets は、実装にターゲット プラットフォームのツールキットを使用しています。
シグナルとスロットは、オブジェクト間の通信のために Qt で導入された言語構造です[ 94 ]。これにより、定型コードを回避しながらオブザーバーパターンを簡単に実装できます。この概念は、GUIウィジェットがイベント情報を含むシグナルを送信し、スロットと呼ばれる特別な関数を使用して他のコントロールがそれを受信できるというものです。
メタオブジェクトコンパイラ(moc)は、Qtプログラムのソースコードに対して実行されるツールです。C++コード内の特定のマクロをアノテーションとして解釈し、それらを使用して、プログラムで使用されるクラスに関するメタ情報を含む追加のC++コードを生成します。このメタ情報は、シグナルとスロット、イントロスペクション、非同期関数呼び出しなど、C++ではネイティブに利用できないプログラミング機能を提供するためにQtによって使用されます。
Qt moc は現在、プリプロセッサ内のモジュールを認識しません。 [ 95 ]
Qtは、C++以外のPython、JavaScript、C#、Rust [ 96 ]などの複数のプログラミング言語で言語バインディングを介して使用できます。多くの言語にはQt 5のバインディングとQt 4のバインディングがあります。
2025年にQt社は、新しい言語とのやり取りの方法を再考することを目的とした新しい「ブリッジング技術」[ 97 ]を発表し、C#、Rust、Swift、Java/Kotlin、Pythonを統合するための概念実証に取り組んでいることを明らかにした。
Qt 4.0 からフレームワークは個々のモジュールに分割されました。[ 98 ] [ 99 ] Qt 5.0 ではアーキテクチャがさらにモジュール化されました。[ 100 ] [ 101 ] Qt は現在、必須モジュールとアドオンモジュールに分割されています。[ 102 ]
Qt クラスはデフォルトではどの名前空間にも存在しませんが、すべてのクラスには文字Qが接頭辞として付きます。Qt は、ユーザー定義の名前空間に配置されるようコンパイルするように構成できます。[ 103 ] Qt は完全にヘッダー ファイルを通じて提供され、現在C++ モジュールはサポートしていません。
Qtには、 Community、Indie Mobile、Professional、Enterpriseの4つのエディションがあります。[ 104 ] Communityバージョンはオープンソースライセンスの下で提供されていますが、Indie Mobile、Professional、Enterpriseバージョンには、Enterprise Controls [ 104 ]などの追加機能とライブラリが含まれており、The Qt Companyによって商用販売されています。
Qtは様々なプラットフォームで動作します。公式にサポートされているプラットフォームは以下のとおりです。
NokiaがGitoriousでQtのソースコードをコミュニティに公開した後、様々な移植版が登場しました。現在でも利用可能なQtの移植版の中には、サポートが終了しているものもあります。これらのプラットフォームは、「Qtがサポートするプラットフォーム一覧」に記載されています。また、 SailfishOSなど、あまり知られていないプラットフォームの現在のコミュニティサポート状況については、そちらもご参照ください。
Qt は、以下のフリーソフトウェアライセンスで利用可能です。[ 12 ] GPL 2.0、GPL 3.0、LGPL 3.0、LGPL 2.1 (Qt の特別な例外あり)。[ 5 ] [ 122 ]一部のモジュールは GPL ライセンスでのみ利用可能であることに注意してください。つまり、これらのモジュールにリンクするアプリケーションは、そのライセンスに準拠する必要があります。[ 123 ]
さらに、Qt は常に Qt 商用ライセンス[ 4 ]のような商用ライセンスの下で利用可能であり、ライセンスの制限なしに独自のアプリケーションを開発できます。
Qtには、クロスプラットフォーム開発を容易にするための独自のツールセットが付属しています。そうでなければ、異なる開発ツールセットを使用する必要があるため、クロスプラットフォーム開発は煩雑になる可能性があります。
Qt Creatorは、 C++とQMLに対応したクロスプラットフォームIDEです。Qt DesignerのGUIレイアウト/デザイン機能はIDEに統合されていますが、Qt Designerをスタンドアロンツールとして起動することも可能です。
Qt Creatorに加えて、Qtは、異なるプラットフォーム間での開発プロジェクト向けにMakefileの生成を自動化するクロスプラットフォームビルドスクリプト生成ツールであるqmakeを提供しています。Qtには他にも、Qt DesignerインターフェースビルダーやQt Assistantヘルプブラウザ(いずれもQt Creatorに組み込まれています)、Qt Linguist翻訳ツール、uic(ユーザーインターフェースコンパイラ)、moc(メタオブジェクトコンパイラ)などのツールが用意されています。
1990年の夏、ハーバード・ノルドとエイリク・シャンベ=エン(Qtのオリジナル開発者であり、それぞれThe Qt CompanyのCEOと社長)は、C++で記述され、従来のMac OS、Unix、およびMicrosoft Windows上で動作する超音波画像のデータベースアプリケーションを共同で開発していた。[ 1 ] [ 124 ]彼らは1991年に「Qt」の開発を開始したが、これは同社がQuasar Technologiesとして法人化され、その後Troll Tech、さらにTrolltechに社名変更する3年前のことだった。[ 1 ]
このツールキットは、 HaavardのEmacsフォントで文字Qが魅力的に見えたことからQtと呼ばれ、「t」はXツールキットのXtに触発されたものである。 [ 1 ]
Qtの最初の2つのバージョンには、Unix向けのQt/X11とWindows向けのQt/Windowsという2つのバージョンしかありませんでした。
1995 年 5 月 20 日、Trolltech はQt Free Edition Licenseの下でソース コードとともに X11/Linux 用の Qt 0.90 を公開しました。[ 125 ] [ 126 ] [ 127 ]このライセンスは、ソースは利用可能であるものの、変更されたバージョンの再配布を許可していないため、フリー ソフトウェア財団によってフリー ソフトウェアの定義に準拠していないと見なされました。Trolltech はこのライセンスをバージョン 1.45 まで使用しました。1998 年頃、K デスクトップ環境がLinux の主要なデスクトップ環境の 1 つになることが明らかになったとき、論争が巻き起こりました。これは Qt をベースにしていたため、フリー ソフトウェア運動の多くの人々は、主要なオペレーティングシステムの 1 つに不可欠な部分がプロプライエタリになることを懸念しました。
Windowsプラットフォームは独自ライセンスでのみ利用可能だったため、X11向けにQtで書かれたフリー/オープンソースアプリケーションは、独自版を購入しない限りWindowsに移植できなかった。
1999 年半ばにツールキットのバージョン 2.0 がリリースされたことで、ライセンスはQ Public License (QPL)に変更されました。これはフリーソフトウェアライセンスですが、フリーソフトウェア財団はGPL と互換性がないとみなしていました。KDE と Trolltech の間で妥協が模索され、Trolltech が買収されたり倒産したりしても、Qt が QPL よりも制限の厳しいライセンスの対象となることはありませんでした。これにより、KDE Free Qt 財団が設立され[ 128 ] 、12 か月以内に Qt のフリー/オープンソース版がリリースされない場合、Qt がBSD スタイルのライセンスの対象となることが保証されました。[ 129 ] [ 130 ]
2000年にQt/X11 2.2がGPL v2の下でリリースされ[ 131 ] 、 GPL互換性に関するすべての論争に終止符が打たれた。
2001年末、TrolltechはQt 3.0をリリースし、Mac OS X(現在はmacOSとして知られている)のサポートを追加しました。Mac OS Xのサポートは、2003年6月にTrolltechがGPLの下でMac OS Xサポートを提供するQt 3.2をリリースするまで、独自のライセンスでのみ利用可能でした。[ 132 ]
2002年、KDE on Cygwinプロジェクトのメンバーは、GPLライセンスのQt/X11コードベースをWindowsに移植し始めました。[ 133 ]これは、Windowsがフリー/オープンソースソフトウェアプラットフォームではないという理由で、TrolltechがQt/WindowsをGPLライセンスで提供することを拒否したことへの対応でした。[ 134 ] [ 135 ]このプロジェクトは一定の成功を収めましたが、製品レベルの品質には達しませんでした。
これは、Trolltech が 2005 年 6 月に Windows 向けにも GPL の下で Qt 4.0 をリリースしたときに解決されました。[ 136 ] Qt 4 は、フリー ソフトウェア/オープンソース版でプロプライエタリ版と同じプラットフォーム セットをサポートしていたため、Qt 4.0 以降のリリースでは、サポートされているすべてのプラットフォームで Qt を使用して GPL ライセンスのフリー/オープンソース アプリケーションを作成することが可能です。特別な例外付きの GPL v3 [ 137 ]は、後に追加のライセンス オプションとして追加されました。GPL 例外により、最終的なアプリケーションは、Mozilla Public License 1.1など、 GPL と互換性のないさまざまなフリー ソフトウェア/オープンソースライセンスの下でライセンスされます。
ノキアは2008年6月17日にTrolltech ASAを買収し、社名をまずQt Software、次にQt Development Frameworksに変更した。[ 138 ]
Nokiaは、 Symbian S60プラットフォームへの移植を含め、Qtを自社デバイスの主要な開発プラットフォームにすることに注力しました。Nokia Qt SDKのバージョン1.0は2010年6月23日にリリースされました。[ 139 ]ソースコードは、Qtを使用して改善するより広範なコミュニティを作成することを目標に、コミュニティ指向のgitソースコードリポジトリであるGitoriousで公開されました。
2009年1月14日、Qtバージョン4.5では、LGPLという別のオプションが追加されました[ 140 ]。これにより、GPL以外のオープンソースプロジェクトとクローズドアプリケーションの両方にとってQtがより魅力的なものになりました[ 141 ] 。
2011年2月、ノキアはSymbianテクノロジーを廃止し、将来のスマートフォンをWindows Phoneプラットフォームに基づかせるという決定を発表しました(それ以来、そのプラットフォームのサポートも終了しています)。[ 142 ] 1か月後、ノキアはQtの商用ライセンスとプロフェッショナルサービスをDigiaに売却すると発表しました。当面の目標はQtのサポートをAndroid、iOS、Windows 8プラットフォームに拡大し、デスクトップおよび組み込み開発に引き続き注力することですが、当時ノキアはフレームワークの主要開発勢力であり続けることになっていました。
2011年3月、ノキアはQtの商用ライセンス部分をDigiaに売却し、Qt Commercialが誕生した。[ 143 ] 2012年8月、DigiaはノキアからQtを買収すると発表した。[ 144 ] DigiaのQtチームは2012年9月に作業を開始した。[ 145 ]彼らは1か月以内にQt 5.0をリリースし、その後6か月ごとに新機能とサポート対象プラットフォームを追加した新しいバージョンをリリースした。
2014年9月、DigiaはQtの事業と著作権を、Qtに関連する25のブランド[ 146 ]を所有する完全子会社であるThe Qt Companyに譲渡しました。2016年5月、DigiaとQtは完全に分離し、2つの独立した会社になりました[ 147 ] 。
Qt 5 は 2012 年 12 月 19 日に正式にリリースされました。この新バージョンはプラットフォームに大きな変化をもたらし、ハードウェア アクセラレーションされたグラフィックス、QML、JavaScript が重要な役割を果たしました。従来の C++ のみの QWidgets は引き続きサポートされましたが、新しいアーキテクチャによって得られるパフォーマンスの向上は得られませんでした。[ 148 ] Qt 5 は、ユーザー インターフェイスの開発の速度と容易さを大幅に向上させます。[ 149 ]
Qt 5 のフレームワーク開発は、qt-project.org でのオープンガバナンスに移行し、Digia 以外の開発者がレビューのためにパッチを提出することが可能になった。[ 150 ]

Qt Company以外にも、Qtを開発プラットフォームとして使用している多くの組織や個人が、Qtプロジェクトを通じてQtのオープンな開発に参加しています。[ 151 ]
Qt の貢献者の 1 つは、スウェーデンの Qt コンサルティング会社である Klarälvdalens Datakonsult AB です。[ 152 ] KDAB は、いくつかのコンポーネントの保守を含む多くの分野に関わっています。[ 153 ] [ 154 ]
KDABはRIM/BlackBerryと共同でQtのQNXおよびBlackBerry 10ポートを維持している。[ 151 ] [ 155 ]
別の参加者としては、例えばWaylandのサポートを提供しているIntelがあります。[ 156 ] AudioCodesはQt CreatorでIBM ClearCaseのサポート を維持しています。[ 157 ]
KDEプロジェクトはQtを多用しているため、開発者ライブラリであるKDE Frameworksから多くのパッチや機能をQtに提出している。[ 158 ]
Qt Wikiには、Qtに関する英語の書籍の包括的なリストが掲載されています。[ 159 ]以下は、注目すべき書籍のリストです。
デスクトップ環境は最新のQt GUIツールキットでリファクタリングされ、HTML5とWebKitフレームワークが置き換えられましたが、バックエンドには引き続きGoが使用されています。
Qtフレームワークに基づいて完全に再設計されたインターフェースを特徴としています。
使用するようになり、プラグインは標準のGPL Qt 5.6.2ディストリビューションとVisual Studio 2015 Qtアドオンを使用してQtでUIを構築できます。
コード全体はQtライブラリに依存しています。
。Qtは、サポートする各プラットフォームのネイティブグラフィックスAPIを使用し、システムリソースを最大限に活用します。