編集この項目では、アプリケーションフレームワークについて説明しています。その他の用法については「QT」をご覧ください。キュート)とは、クロスプラットフォームアプリケーションフレームワークである。Project(英語版)によって開発されている。外部リンク性能編集キュー・ティーと発音されることもあるが公式にはキュートである。GUIツールキットとして広く知られているQtであるが、コンソールツールやサーバのような非GUIプログラムでも広く使用されている。ライセンスには商用版とオープンソース版があり、現在のオープンソース版のライセンスはLGPLおよびGPLである。License)でソフトウェアを開発することができる。4.5から提供され始めた。これによりQtは営利企業にとってもより使いやすいライブラリーとなった。System(Linux、UNIX等)、Windows、macOS、組み込みシステムといった様々なプラットフォーム上で稼働するアプリケーションの開発が可能である。Jambi、さらにQtをRuby、Python、Perl、C#などから利用できるようにしたオープンソースのAPIが存在する。このように開発が容易であり高速、スタイリッシュなQtはライセンスが多様なこともあり、KDEを始めとするオープンソースのアプリケーションに限らず、商業アプリケーションでの採用例も多く様々な分野で使用されている。OpenGLやSVG、XMLといった最新技術にも対応している他、日本語を含む多バイト文字入力フレームワークへも対応している。オープンソース版編集GPLまたはLGPLが適用される。LGPLは、バージョン4.5から適用できる。CE、Symbian(Qt4.6より)向けにパッケージが配布されている。5のモジュール群の一部を以下に示す[3]。CoreGUI向け以外のコアとなるクラスを保持する。GuiGUIのメインとなるクラスを保持する。Multimedia音楽、動画、ラジオ、カメラなどのマルチメディア機能を実装する。Widgetsマルチメディア機能を実現するウィジェット群。Networkネットワークプログラミングを簡単にするためのクラス群。QMLQMLとJavaScriptに関するクラスを保持している。Quickカスタムユーザーインターフェイスを備えた高度に動的なアプリケーションを構築するためのフレームワーク。QuickベースのUIコントロール群。Quickアプリケーションにシステムダイアログを提供する。2ベースのアイテムを使用するアイテムのレイアウト。SQLSQLを使うデータベースのためのクラス群。TestQtアプリケーションとライブラリのユニットテストのためのクラス群。GuiをC++ウィジェットで拡張するためのクラス群。QtWindowsでActiveXやCOMを使うアプリケーションのためのクラス群。3D2Dや3Dレンダリングをサポートする近リアルタイムシミュレーションシステムのための機能。ExtrasAndroid固有の機能を使うためのAPI。BluetoothBluetoothハードウェアへのアクセスを提供する。QuickアプリケーションからOpenGL風の3D描画を可能にする。Concurrent低レベルな操作なしにマルチスレッドプログラムを書くためのクラス群。D-BusD-Busプロトコルを使用したプロセス間通信のためのクラス群。GamepadQtアプリケーションのゲームパッドハードウェアのサポートを可能にする。2で使うためのグラフィカルエフェクト。Guiでサポートされていない画像フォーマットのためのプラグイン群。LocationQMLアプリケーションで地図の表示や道案内やコンテンツの配置をする。ExtrasmacOS固有の機能を使うためのAPI。NFCNFCハードウェアへのアクセスを提供する。Positioningスマートフォンなどで位置情報を提供する。Support印刷を簡単にするためのクラス群。PurchasingQtアプリケーションのアプリ内課金を可能にする。Sensorsセンサーハードウェアへのアクセスとモーションジェスチャーの認識を提供する。Portハードウェアと仮想シリアルポートへのアクセスを提供する。SVGSVGファイルの内容を表示するクラスを保持する。Tinyの機能をサポートする。WebEngineアプリケーションにウェブコンテンツを埋め込むためのクラスと関数群。WebViewQMLアプリケーションでウェブコンテンツをプラットフォームのネイティブAPIを使い、アプリケーションに完全なウェブレンダリングエンジンを含むことなく表示する。ExtrasWindows固有の機能を使うためのAPI。ExtrasX11固有の機能を使うためのAPI。XMLSAXおよびDOMインターフェイスを実装。ネイティブUI描画APIの使用編集かつてQtはプラットフォームのネイティブの見た目をエミュレートしていたため、ときどきエミュレーションが不完全な場合に微妙な不一致が発生することもあったが、最近のバージョンのQtはそれぞれのプラットフォームのネイティブAPIでQtコントロールの描画を行うため、そのような問題に苦しめられることもなくなった[4]。メタオブジェクトコンパイラ編集mocと呼ばれるメタオブジェクトコンパイラは、Qtプログラムのソースコードを入力として実行されるツールである。C++のソースコードにマクロを1、2行記述するだけで、mocがそれを解釈しプログラムで使用されるクラスについての「メタ情報」とともに追加のC++コードを挿入して出力する。このシステムにより、ネイティブのC++では利用できなかったり実現しようとすると煩雑なシグナル&スロットシステムやメタプログラミング、非同期関数呼び出しなどを簡単に利用できる。パターンを簡単に使えるようにするための仕組み。あるオブジェクトがシグナルを発信するとそのシグナルに接続してあるオブジェクトのスロット(関数)が呼ばれる。発信側は受信側を知る必要がなく、インクルード関係をシンプルに保つことができる。バインディング編集Qtはさまざまな言語用のバインディングを持っており[5]、機能セットの一部または全部を実装している。Assistant等の開発支援ツールが付属しており、これらを使用することで高速な開発が可能となっている。Add-inが用意されている。Integrationも用意されている。Unix/X11(Linuxなど)では、KDevelopが使用できる。Studio上のコンパイラが使える他、MinGW等のコンパイラでの開発も可能である。Tech社、Trolltech社へと社名を変更していく)。Qtと名づけられたのは、Qという文字がHaavardの使っていたEmacsのフォントの中でもっとも美しく見えたという理由からである。tはtoolkitの略語である。KDEがLinuxで主要なデスクトップ環境になることが明確になった1998年頃、KDEがQtベースで開発されていることから、フリーソフトウェアであるKDEがライセンス上、Trolltech社のQPLに抵触する可能性が懸念された。背景は以下の通りである。licenseでリリースされていた。Foundationによると、QPLはGPLとは矛盾するライセンスであった。Foundationが発足されることになった。結果、QtはQPLとGPLのデュアルライセンスで配布されることが決まり、この問題は完全に解決した。FoundationによりQtの開発を続けることが保証されることになった。最初の二つのバージョンでは、プラットフォームはUNIX及びWindowsプラットホームがサポートされた。当初はQt/X11上でのプロプライエタリライセンスはWindowsプラットホームでは使用できず、WindowsでQtを使用するときはQPLエディションのQtを購入する必要があった。2001年の終わりにTrolltech社はバージョン3.0をリリースした。Xプラットフォームもサポート対象となった。X上ではGPLで配布されている。2005年6月にTrolltech社はQtバージョン4をリリースした。Windows上でも、QtをGPLでソースコードを公開することになった。Unixの全てのプラットフォームでGPLのフリーオープンソースアプリケーションが開発できるようになった。このバージョンからコア、GUI、ネットワーク、XML、OpenGLなど、機能別にモジュールが分割された。不要な機能は読み込まれないため、メモリの節約になる。その一方、Qt4はQt2および3とソースコードに互換性がない。このため現在[いつ?]でもQt3を使い続けるユーザーは多い。KDEは3から4へバージョンアップする際、ソースコードの全面的な書き直しが必要となったためリリースが大幅に遅れた。2009年3月にLGPLが適用となるバージョン4.5が発表された。これはTrolltech社がNOKIA社に買収されたことにともなうもので、組み込み実績の多いQtをプロプライエタリなソフトウェアでもより使用しやすくするためである。バージョン4.5においても、Qtの商用ライセンスは存続し、LGPLですら許容できない(リバースエンジニアリング禁止条項を含むなど)場合は商用ライセンスを使用する必要がある。2009年5月には、Gitリポジトリが公開され、ユーザからのパッチのコミットがより簡易になった。初期のバージョンにおいては日本語固有の処理にバグがあり、ライセンス上それを修正し配付することが困難であったため、QtおよびKDEの普及が日本語圏において遅れることとなった。この問題はTrolltech社(当時)が日本語パッチを特別に認めることにより解決した。Chromiumを援用することがQt5.6で決まったものの、その性能の悪さからすぐに批判され、現在[いつ?]ではQtWebEngineとQtWebKitが混在している。WebBrowser[6]も思ったほどの普及になっていない。これはChromiumの採用バージョンが最新よりかなり遅れることが原因である。2012年8月9日にディジア(英語版)がノキアからQtを買収した[7]。8へのQtの早急な対応を目標に、約125人のQt開発者たちがディジアに移籍された[8][9]。リモートデスクトップソフトQtを利用できるプログラミング言語編集QtはGUIツールキットとして広く使われているため、メイン開発言語であるC++以外の多数のプログラミング言語バインディングが存在する。古くから使われているPythonバインディング。ノキア社が開発したPythonバインディング。関連のフォームデザイナ、ツールが処理系に標準添付されている。2020年1月28日閲覧。2017年10月11日閲覧。2017年10月12日閲覧。2013年11月1日時点のオリジナルよりアーカイブ。2017年10月12日閲覧。FLOSSウィキメディア・コモンズには、Qtに関連するメディアおよびカテゴリがあります。3.0のもとで利用可能です。プライバシーデスクトップ。