KDE Frameworks

出典: フリー百科事典『ウィキペディア(Wikipedia)』
KDE Frameworks
作者 KDE
開発元 KDE
初版 2014年7月1日 (9年前) (2014-07-01)
リポジトリ ウィキデータを編集
プログラミング
言語
C++ (Qt)
対応OS クロスプラットフォームAndroid[1][2]Windows[3]macOSHaikuのサポートを「一部」含む)
種別
ライセンス GNU Lesser General Public License (LGPL)[4]
公式サイト api.kde.org/frameworks/index.html ウィキデータを編集
テンプレートを表示

KDE Frameworks(ケーディーイー・フレームワークス)は、複数のオペレーティングシステム上のQtベースのソフトウェアスタックやアプリケーションですぐに利用できるライブラリソフトウェアフレームワークコレクションである[5]。KDE Frameworksのコレクションははハードウェアの統合、ファイルフォーマットのサポート、追加のコントロール要素、プロット関数、スペルチェックなどの一般的に必要となる機能を特徴としており、GNU Lesser General Public License (LGPL) の下で配布されているKDE Plasma 5KDE Applicationsの技術的な基盤となっている[6]

概要[編集]

KDE Frameworks 5はQt 5に基づいており、JavaScriptをベースとした宣言型プログラミング言語QMLユーザインタフェースの設計に利用することができる。QMLで使用されるグラフィックスレンダリングエンジンは、様々なデバイス間でより柔軟なユーザインタフェースを実現することができる[7]

KDE Frameworks 5のコードのいくつかは、バージョン5.2やそれ以降のQtに統合された。

KDE Software Compilation英語版をKDE Frameworks 5、KDE Plasma 5KDE Applicationsに分割して以降、各プロジェクトは独自の開発ペースを選択することができるようになった。KDE Frameworksは毎月新たなバージョンがリリースされ[8]バージョン管理システムにはGitを利用している[9][10]

KDE Platform 4ランタイムとKDE Frameworks 5ランタイムの両方をインストールすることで、アプリケーションはどちらかを利用できるようになる[11]

APIとABIの安定性[編集]

プラットフォームリリースとはシリーズ(バージョン番号X.0)を開始するリリースのことである。このメジャーリリースだけが前のバージョンとのバイナリ互換性英語版を損なうことが許容されているが、マイナーシリーズ (X.1, X.2, ....) のリリースではバイナリ移植性 (APIとABI) は保証されている。これは例えばK Desktop Environment 3 (KDE 3) 向けに開発されたソフトウェアは全てのバージョンのKDE 3で動作するが、K Desktop Environment 2 (KDE 2) 向けに開発されたアプリケーションはKDE 3のライブラリを利用できないことを意味する。KDEのメジャーリリースのバージョン番号は主にQtのリリースサイクルに従う。これはKDE Software Compilation 4 (KDE SC 4) がQt 4に、KDE 3がQt 3に基づくことを示す。

サポートされるオペレーティングシステム[編集]

各フレームワークのリポジトリにはmetainfo.yamlという名前のファイルが含まれなければならない[12]。このファイルには、フレームワークのメンテナ、種類、サポートされているオペレーティングシステムなどの情報が記載されている。現在サポートされているプラットフォームはLinuxMicrosoft WindowsmacOSAndroidである。

ソフトウェアアーキテクチャ[編集]

構造[編集]

KDE Frameworksは明確な依存構造を持っている。この構造は「カテゴリ」と「階層」からなり、「カテゴリ」は実行時の依存関係を示すものである。

  • 各機能は実行時の依存関係が存在しない。
  • 指定されたコードを統合する場合、オペレーティングシステムやプラットフォームによって実行時の依存関係が必要になる可能性がある。
  • ソリューションには必須の実行時の依存関係が存在する。

「階層」はコンパイル時の他のフレームワークへの依存関係を示す[13]

  • 第1階層フレームワークは、フレームワーク内には依存関係が存在せず、Qtやその他の関連するライブラリのみが必要となる。
  • 第2階層フレームワークは、第1階層フレームワークにのみ依存することができる。
  • 第3階層フレームワークは、第1階層フレームワークや第2階層フレームワークと同様に、他の第3階層フレームワークに依存することができる。

コンポーネント[編集]

KDE Frameworksは70以上のパッケージから構成されている。KDE SC 4では、これらのパッケージはKDELibsとして単一の大きなパッケージから構成されていた。KDELibsはいくつかのフレームワークに分割されたが、一部はKDEではなくQt 5.2に統合された[14]

KDEFrameworksは他のライブラリへの依存度に応じて、異なる4つの階層にグループ化されている。第1階層フレームワークはQtや他のシステムライブラリにのみ依存する。第2階層フレームワークは第1階層ライブラリ、Qtや他のシステムライブラリなどに依存できる[15]

フレームワークの全リスト
Name Tier git Description
Frameworkintegration Frameworkintegration 4 frameworkintegration.git Frameworkintegrationは、KDE Plasmaワークスペースで実行する場合のQtアプリケーションの統合を改善するプラグインのセットである。アプリケーションはこれに直接リンクする必要はない。ライブラリKF5Styleは、QtスタイルのKDE Plasmaワークスペース設定との統合を提供する。QStyleをKStyleから派生させて、KDE Plasmaワークスペースから様々な設定を自動的に継承し、一貫したユーザーエクスペリエンスを提供する。例えば、これにより、一貫したシングルクリックまたはダブルクリックのアクティベーション設定と、標準のテーマアイコンの使用が保証される。
KActivities KActivities 3 kactivities.git KDE ActivitiesのActivity Manager用コアコンポーネント。
KApiDox KApiDox 4 kapidox.git 標準形式とスタイルでAPIドキュメントを構築するためのスクリプトとデータ。このフレームワークには、標準形式とスタイルでAPIドキュメント (dox) を構築するためのスクリプトとデータが含まれている。Doxygenツールは、実際のドキュメントの抽出とフォーマットを行うために使用されるが、このフレームワークは、ドキュメントの生成をより便利にするラッパースクリプト(ターゲットフレームワークまたは他のモジュールからの設定の読み取りを含む)と、生成されたドキュメントの標準テンプレートを提供する。
KArchive KArchive 1 karchive.git zipやtarを含む「アーカイブ」形式の簡単な読み取り、作成、操作のためのクラス。
KAuth KAuth 2 kauth.git 特権ユーザーとして実行する必要があるアクションを小さなヘルパーユーティリティにオフロードする便利でシステム統合された方法を提供する。
KBookmarks KBookmarks 3 kbookmarks.git KBookmarksを使用すると、「XBEL形式」を使用して保存されているブックマークにアクセスして操作できる。ブックマークの最も一般的な使用方法はウェブブラウザであるが、ローカルファイルまたはURLをブックマークとして保存できるアプリケーションでも役立つ。
KCMUtils KCMUtils 3 kcmutils.git KDEシステム設定モジュール用のユーティリティ(KSettingsなど)。KCMUtilsは、KCModulesを操作するための様々なクラスを提供する。KCModuleは、KConfigWidgetsフレームワークを使用して作成される。
KCodecs KCodecs 1 kcodecs.git KCodecsは文字列エンコードライブラリであり、様々なエンコードを使用して文字列を操作するメソッドのコレクションを提供する。文字列の文字セットを自動的に決定し、XMLエンティティを変換し、電子メールアドレスを検証し、QTextCodecよりも寛容な方法で名前によるエンコーディングを検索できる(インターネットからのデータなどに便利)。
KCompletion KCompletion 2 kcompletion.git 補完対応のラインエディットとコンボボックスを含む、文字列補完フレームワーク。ユーザーが完全にオリジナルのものを入力するのではなく、既存のデータ(以前に入力したものを含む)から選択することが多いファイル名、電子メールアドレス、その他のテキストを入力する場合、ユーザーは最初の数文字だけを入力する必要がある場合に役立つことがよくある。その後、アプリケーションに一連の選択肢を提供するか、入力した内容を終了させる。多くの場合、メールクライアント、シェル、および「ファイルを開く」ダイアログがこの機能を提供する。このフレームワークは、Qtベースのアプリケーションでこれを実装するのに役立つ。このフレームワークが提供する補完対応ウィジェットの1つを使用するか、アプリケーションの他のウィジェットに直接統合できる。
開始する最も簡単な方法は、KComboBox、KHistoryComboBox、またはKLineEditを使用することである。ユーザインタフェースの他の部分に補完を統合する場合は、KCompletionを使用して、可能な補完を管理および選択できる。
KConfig KConfig 1 kconfig.git KConfigCoreとKConfigGuiの2つの部分で構成される永続的なプラットフォームに依存しないアプリケーション設定。
KConfigCoreは構成ファイル自体へのアクセスを提供するが、それはつまりXML構成の生成である。
KConfigGuiはグラフィカルなコントロール要素(ウィジェット)を設定にフックする手段を提供する。これにより、ウィジェットは設定から自動的に初期化され、ウィジェットの変更はそれぞれの設定ファイルへと自動的に伝搬されるようになる。
KConfigWidgetsKConfigWidgets 3 kconfigwidgets.git 構成ダイアログ用のグラフィカルなコントロール要素(ウィジェット)。構成ダイアログ用のウィジェット。KConfigWidgetsは設定ダイアログを作成するための使いやすいクラスと、KConfigを使用して設定を保存する一連のウィジェットを提供する。
KCoreAddonsKCoreAddons 1 kcoreaddons.git コアアプリケーション機能およびOSへのアクセス用のユーティリティ。非GUIユーティリティのコレクションを備えたQtアドオンライブラリ。KCoreAddonsはQtCoreの上に構築されたクラスで、MIMEタイプの操作、ファイルの自動保存、バックアップファイルの作成、ランダムシーケンスの生成、マクロ置換などのテキスト操作の実行、ユーザー情報へのアクセスなど、様々なタスクを実行するクラスを提供する。
KCrashKCrash 2 kcrash.git アプリケーションのクラッシュの傍受と処理のサポートを提供する。
KDBusAddonsKDBusAddons 1 kdbusaddons.git KDBusAddonsはQtDBus上に便利なDBusクラスや、KDEDモジュールを作成するためのAPIを提供する。
KDeclarative 3 kdeclarative.git Qt宣言のアドオン。
KDE DaemonKDED 3 kded.git KDEDは、KDEワークスペースの中心的なデーモンであるKDE Daemonの略である。KDEDはバックグラウンドで実行され、いくつかの小さなタスクを実行する。これらのタスクの一部は組み込みで、それ以外はオンデマンドで開始される。
KDesignerPlugin 3 kdeclarative.git このフレームワークは、様々なKDEフレームワークによって提供されるウィジェットを表示できるQt Designerのプラグインと、iniスタイルの記述ファイルから他のプラグインを生成するために使用できるユーティリティ (kgendesignerplugin) を提供する。
KDESu 3 kdesu.git KDESU(KDEスーパーユーザー)は、root権限でシェルコマンドを実行するためのユーザインタフェースを提供する。(パスワードを要求する)コンソールモードプログラムのGUIフロントエンドを構築する機能を提供する。例えば、kdesuとkdesshは、それぞれsusshとのインタフェースに使用する。
KDEWebkitKDEWebkit 3 kdewebkit.git HTMLレンダリングエンジンWebKitの統合。KDEWebkitライブラリは、QtWebKitライブラリのKDE統合を提供する。KDEアプリケーションでQtWebKitを使用している場合、QtWebKitクラスを直接使用する代わりにこのレイヤーを使用することが推奨される。特に、QWebViewではなくKWebView、QGraphicsWebViewではなくKGraphicsWebView、QWebPageではなくKWebPageを使用すべきである。
KDNSSDFramework 2 kdnssd.git KDNSSDは、DNSベースのサービス検出プロトコル(DNS-SD)であるZeroconf(http://www.zeroconf.org/)の層を処理するためのライブラリである。これにより、ユーザーの介入または集中インフラストラクチャなしにプリンターなどのネットワークサービスを何もせずに検出できる。
KDocTools 2 kdoctools.git DocBookファイルから様々な形式のドキュメントを生成するツールを提供する。
KEmoticons 3 kemoticons.git テキストの絵文字をグラフィカルな絵文字に自動的に変換するヘルパークラスだけでなく、絵文字のテーマも提供する。
KGlobalAccelKGlobalAccel 1 kglobalaccel.git KGlobalAccelを使用すると、フォーカスされたウィンドウに依存しないグローバルキーボードショートカット(アクセラレータ)を使用できる。通常のショートカットとは異なり、アプリケーションのウィンドウをアクティブ化するためにフォーカスする必要はない。
KGuiAddons 1 kguiaddons.git KDE GUIアドオン。グラフィカルユーザインタフェースのユーティリティ。KDE GUIアドオンは、色、フォント、テキスト、画像、キーボード入力の分野でグラフィカルユーザインタフェース用のユーティリティを提供する。
KHTMLKHTML 4 khtml.git KHTMLはWebKitからフォークされたHTMLレンダリングエンジンである。KPartsテクノロジーに基づいており、JavaScriptサポートにKJSを使用する。
Ki18n 1 ki18n.git KDE gettextベースのUIテキストの国際化。KI18nは、GNU Gettext翻訳システムに基づいて、アプリケーションでユーザインタフェーステキストを国際化する機能を提供する。標準のGettext機能をラップしているため、プログラマや翻訳者は使い慣れたGettextツールとワークフローを使用できる。KI18nは、プログラマと翻訳者の両方に追加の機能も提供する。これにより、ソースおよび翻訳テキストの全体的な品質を高めることができる。これには、引数のキャプチャ、カスタマイズ可能なマークアップ、および翻訳スクリプトが含まれる。
KIconThemes 3 kiconthemes.git このライブラリには、KDEフレームワークを使用するアプリケーションでアイコンの処理を改善するためのクラスが含まれる。
KIdleTime 1 kidletime.git アイドリング時間検出用の統合モジュール。
KImageFormats 1 kimageformats.git QImageが追加のファイル形式をサポートできるようにするプラグイン。このフレームワークはQtGui用の追加の画像形式プラグインを提供する。そのため、他のソフトウェアのコンパイルには必要ないが、Qtベースのソフトウェアが特定の画像形式をサポートするためのランタイム要件になる場合がある。

以下の画像形式は読み取りのみをサポートする:

以下の画像形式は読み取りと書き込みをサポートする:

KInitKInit 3 kinit.git kdeinitはプロセスランチャーで、「kdemain(...)」関数を含むダイナミックライブラリをフォークしてからロードすることでプロセスを起動します。kdeinitは、KDEワークスペースでのアプリケーションの起動を高速化する。kdeinitは、標準のKDEアプリケーションが必要とする全てのライブラリに対してリンクされている。この手法では、アプリケーション自体のみをリンクする必要があるので、アプリケーションの起動がはるかに速くなる。
KIO 3 kio.git ファイルおよびデータへのネットワーク透過的なアクセス。このフレームワークは必要となるほぼ全てのファイル管理機能を実装している。DolphinとKDEファイルダイアログもネットワーク対応のファイル管理を提供するためにこれを使用している。
Kirigami 1 kirigami.git KDE UXガイドラインに基づいてユーザインタフェースを構築するためのQtQuickプラグインのセット。
KItemModels 1 kitemmodels.git Qtモデルビューフレームワークを拡張するアイテムモデルのセット。KItemModelsは以下のモデルを提供する:
  • KBreadcrumbSelectionModel - パンくずリストを作成するため選択されたアイテムの親を選択する。
  • KCheckableProxyModel - ソースモデルにチェック可能な機能を追加する。
  • KConcatenateRowsProxyModel - 複数のソースモデルから行を連結する。
  • KDescendantsProxyModel - ツリーをリストに再構築するためのプロキシモデル。
  • KExtraColumnsProxyModel - 既存の列の後に列を追加する。
  • KLinkItemSelectionModel - 同じソースモデルを持たない複数のビューで選択を共有する。
  • KModelIndexProxyMapper - プロキシモデルを介してインデックスと選択をマッピングする。
  • KRearrangeColumnsProxyModel - ソースモデルの列を並べ替えて非表示にできる。
  • KRecursiveFilterProxyModel - モデルの再帰フィルタリング。
  • KSelectionProxyModel - ソースモデルのサブセットをオブザーバーに提示するプロキシモデル。
KItemViews 1 kitemviews.git Qtモデルビューフレームワークを拡張するアイテムビューのセット。KItemViewsには、アイテムモデルで使用できる一連のビューが含まれている。KItemViewsにはリストを分類し、検索フィルターをフラットリストおよび階層リストに追加するためのビューが含まれている。
KJobWidgets 2 kjobwidgets.git KJobWIdgetsは、非同期ジョブの進行状況を表示するためのウィジェットを提供する。
KJS 1 kjs.git KJSはECMAScript互換のインタプリタを提供する。ECMA標準はネットスケープのJavaScriptやマイクロソフトJScriptなどのよく知られたスクリプト言語に基づいている。
KJSEmbed 3 kjsembed.git KSJEmbedはJavaScriptオブジェクトをQObjectにバインドする方法を提供するため、アプリケーションをスクリプト化可能にする。
KMediaPlayer 3 kmediaplayer.git 非推奨:メディアプレーヤーKPartsのインタフェース。KMediaPlayerはKPartsフレームワーク上に構築され、メディアファイルを再生できるKPartsの共通インタフェースを提供する。このフレームワークは移植支援である。KMediaPlayerは新しいプロジェクトには非推奨であり、それを使用する既存のプロジェクトは、それから移植して、代わりにプレーンなKPartsを使用することが推奨される。
KNewStuff KNewStuff 3 knewstuff.git 追加のアプリケーションデータをダウンロードおよび共有するためのフレームワーク。KNewStuffライブラリは、アプリケーションの共同データ共有を実装する。libatticaを使用して、Open Collaboration Services仕様をサポートする。

Atticaは、Open Collaboration Services APIバージョン1.6を実装するQtライブラリであり、個人やコンテンツに関する情報の照会などのサービスへの簡単なアクセスができるようにする。

KNotifications KNotifications 3 knotifications.git システム通知を抽象化したソリューション。
KNotifyConfig KNotifyConfig 3 knotifyconfig.git KNotify構成用のモジュール。
KParts KParts 3 kparts.git KPartsライブラリは、KDEパーツのフレームワークを実装する。1つの個別のユーザインタフェースコンポーネントはKPartと呼ばれ、アクション(メニュー項目、ツールバーアイコン)の観点から定義されたユーザインタフェースを持つ精巧なウィジェットである。KPartsは、GNOMEBonoboコンポーネントやマイクロソフトのComponent Object ModelActiveXコントロールに類似している。KonsoleはKPartとして利用でき、KonquerorやKateなどのアプリケーションで使用される。KPartsの使用例には以下が存在する:
  • KonquerorOkularパーツを使用してドキュメントを表示する。
  • KonquerorはDragon Playerの一部を使用してマルチメディアを再生する。
  • Kontactkdepimアプリケーションを組み込む。
  • Kateやその他のエディタはkatepartエディタコンポーネントを使用する。
  • いくつかのアプリケーションはKonsole KPartを使用して端末を組み込む。

以下も参照:

KPlotting KPlotting 1 kplotting.git KPlotWidgetはQWidgetから派生したクラスで、データを簡単にプロットできる仮想ベースクラスを提供する。KPlotWidgetの背後にある考え方は、あなただけが持っているということである「データ単位」、すなわち、プロットされるデータの自然単位で情報を指定する。KPlotWidgetは全て自動的にスクリーンピクセル単位に変換する。KPlotWidgetは目盛りと目盛りラベルでX軸とY軸を描画し、プロットに指定されたデータ制限に基づいて、使用する目盛りの数と位置を自動的に決定する。'setLimits(double x1、double x2、double y1、double y2)'を呼び出すことで制限を変更する。プロットされるデータはKPlotObjectクラスを使用して保存される。KPlotObjectはQPointFのQListで構成され、それぞれがデータポイントのX、Y座標を指定する。KPlotObjectはプロットするデータの「タイプ」も指定(POINTSまたはCURVEまたはPOLYGONまたはLABEL)する。
KPty KPty 2 kpty.git 疑似端末デバイスとのインタフェース。このライブラリは疑似端末デバイスとインターフェイスするプリミティブと、子プロセスを実行してptyを使用して子プロセスと通信するためのKProcess派生クラスを提供する。
Kross Kross 3 kross.git アプリケーションへスクリプトを組み込む。Krossはスクリプト機能をアプリケーションに組み込むためのスクリプトブリッジであり、スクリプトインタプリタバックエンドとしてQtScriptをサポートする。

Krossのコアはインタプリタバックエンドを透過的に処理するためのフレームワークを提供し、スクリプトを処理するための抽象的な機能を提供する。

KRunner KRunner 3 krunner.git 文字列クエリを指定してさまざまなアクションを提供するためのフレームワーク。Plasmaランナー用フレームワーク。PlasmaワークスペースはKRunnerと呼ばれるアプリケーションを提供する。これによりテキストエリアに入力することで、入力され表示されたテキストに一致する様々なアクションを発生させたり、情報を表示することができるようになる。このための1つのアプリケーションが Alt+F2で起動できるユニバーサルランナーである。
KService KService 3 kservice.git KServiceはデスクトップサービスを処理するためのプラグインフレームワークを提供する。サービスはアプリケーションまたはライブラリであり、MIMEタイプにバインドするかアプリケーション固有のコードで処理をすることができる。
KSyntaxHighlighting KSyntaxHighlighting 1 syntax-highlighting.git Kate構文強調表示エンジンのスタンドアロン実装。これは、テキストエディタと単純な強調表示されたテキストレンダリング(HTMLなど)の構成要素として、カスタムエディターとすぐに使用できるQSyntaxHighlighterサブクラスの両方の統合をサポートする。
KTextEditor KTextEditor 3 ktexteditor.git KTextEditorはKPartとして、またはKF5 :: TextEditorライブラリを使用して(さらに制御が必要な場合)アプリケーションに組み込むことができる、強力なテキストエディタコンポーネントを提供する。テキストエディタコンポーネントには構文の強調表示や自動インデントから高度なスクリプトサポートまで多くの便利な機能が含まれており、シンプルな組み込みテキストファイルエディタから高度なIDEまであらゆるものに適している。
KTextWidgets KTextWidgets 3 ktextwidgets.git KTextWidgetsはテキストを表示および編集するためのウィジェットを提供する。リッチテキストとプレーンテキストをサポートする。
KUnitConversion KUnitConversion 2 kunitconversion.git KUnitConversionは異なる物理単位の値を変換する関数を提供する。KUnitConversionは異なる接頭辞(キロ、メガ、ギガなど)の変換と、異なる単位系(リットル、ガロンなど)間の変換をサポートする。以下の領域がサポートされている:
  • 加速度
  • 角度
  • 面積
  • 通貨
  • 密度
  • 電流
  • 電気抵抗
  • エネルギー
  • 周波数
  • 燃料効率
  • 長さ
  • 質量
  • 圧力
  • 温度
  • 熱伝導率
  • 熱流束
  • 熱発電
  • 時間
  • 速度
  • ボリューム
  • 電圧
KWalletFrameworkKWalletFramework 3 kwallet.git パスワードに対して安全なデスクトップワイドストレージ。KWalletFrameworkは以下の2つの主要コンポーネントから構成される:
  • KWalletへのインタフェース、KDEワークスペース上においてパスワードに対して安全なデスクトップワイドストレージ。
  • KDEワークスペース上にパスワードを安全に保存するために使われるkwalletd。
KWayland KWayland 1 kwayland.git KWaylandはKDEアプリケーションでWaylandのサポートを実装するためKDEライブラリであり、QtWaylandが提供する以上のニーズを満たす。plasma-wayland-sessionの全てのKDEアプリケーションの多くはこのライブラリとLXQtを使用する。KWaylandは5.22(2016年5月)以降KDEフレームワークの一部である。以前はKDE Plasma 5の一部として配布されていた。
KWidgetsAddons KWidgetsAddons 1 kwidgetsaddons.git QtWidgetsの上にあるさまざまなクラスのアドオン。KDE Platform 4 "kdeui"ライブラリからアプリケーションを移植する場合、そのクラスの多くがここにある。それらはツールバーまたはメニューに追加できるアクションクラス、文字、フォント、色、アクション、日付と時刻、またはMIMEタイプを選択するための幅広いウィジェット、および構成ページ、メッセージボックス用のプラットフォーム対応ダイアログ、およびパスワードのリクエストなどである。その他のウィジェットとクラスは、他のKDEフレームワークで見つけることができる。
KWindowSystem KWindowSystem 1 kwindowsystem.git ウィンドウシステムと対話できるようにする。KWindowSystemはグローバル状態(ルートウィンドウに設定されているすべて)にアクセスするためのNETRootInfoと、特定のウィンドウに関するすべての情報のためのNETWinInfoを提供する。そのクラスにはウィンドウマネージャとクライアントの観点があり、KWinおよびタスクマネージャなどのグラフィカルシェルの様々な部分を強化する基盤である[16]。これらX11固有のクラスの上に、便利なAPI KWindowInfoとKWindowSystemがあり、アプリケーションにウィンドウシステムに依存しないAPIを提供する。
KXMLGUI KXMLGUI 3 kxmlgui.git KXMLGUIはメニューとツールバーのアクションを抽象的な方法で管理するためのフレームワークを提供する。アクションはアプリケーションコードのXML記述とフックによって構成される。フレームワークは、例えばプラグインからのアクションを統合するために、複数の説明のマージをサポートする[16]

KXMLGuiはKConfigのキオスク認証機能を使用する(そのフレームワークのKAuthorized名前空間を参照)。特にKAuthorized::authorizeAction() が許可されていないことを報告した場合、KActionCollectionに追加されたQActionインスタンスは無効になる。同様に、標準のヘルプメニュー (KHelpMenu) の項目は、キオスクの設定に基づいて無効にでき、ツールバーの編集を制限できる。詳細については、KActionCollection、KHelpMenu、KToolBarのドキュメントを参照すること。

Plasma-framework Plasma-framework 3 plasma-framework.git KF5およびQt5に基づくKDE Plasmaワークスペースの基礎ライブラリ、ランタイムコンポーネント、およびツール。Plasma-frameworkは以下を提供する:
  • QMLコンポーネント
    • org.kde.plasma.core:DataEngineやFrameSvgなどのlibplasma機能のバインディング
    • org.kde.plasma.components:ボタン、ラインエディット、タブバーなどの一般的なアイテムのグラフィカルコンポーネント。N9で使用されるMeeGoコンポーネントの互換性のあるサブセット
    • org.kde.plasma.extras:org.kde.plasma.componentsを拡張するが、標準APIにはない追加のグラフィカルコンポーネント
    • org.kde.plasma.plasmoid:現在のアプレットまたは包含を操作するための添付プロパティ
  • libplasma:以下を提供するC ++ライブラリ:
    • SVGテーマのレンダリング
    • 特定のファイルシステム構造からのファイルのロード:パッケージ
    • データエンジンを介したデータアクセス
    • ワークスペースのプラグイン構造のロード:包含とアプレット
  • スクリプトエンジン:さまざまなスクリプト言語でアプレットまたは包含を作成するためのサポートを提供
Prison Prison 1 prison.git PrisonはQtベースのバーコード抽象化レイヤー/ライブラリであり、データを含むバーコードの生成への均一なアクセスを提供する。
Solid Solid 1 solid.git Solidは基盤となるオペレーティングシステムに依存せずハードウェアを照会および対話する方法を提供する。アプリケーション開発者に以下の機能を提供する:
Sonnet Sonnet 1 sonnet.git SonnetはQtベースのアプリケーション用のプラグインベースのスペルチェックライブラリである。SonnetはHSpell、Enchant、ASpell、HUNSPELLなど、さまざまなプラグインをサポートしており、異なるアルゴリズムの組み合わせに基づいた自動言語検出もサポートしている。アプリケーションでSonnetを使用する最も簡単な方法は、QTextEditでSpellCheckDecoratorクラスを使用することである。
Syndication Syndication 2 syndication.git SyndicationはRSS/Atomパーサーライブラリである。
ThreadWeaver ThreadWeaver 1 threadweaver.git ThreadWeaverはジョブキューであり、内部で管理するスレッドでジョブを実行する。

ソフトウェアパッケージ[編集]

Linuxディストリビューションは配布するソフトウェアをパッケージ化するために、何らかのパッケージ管理システムを使用している。例えばDebianKGlobalAccellibkf5globalaccelというパッケージ名で配布している[17]が、Fedorakf5-kglobalaccelという名前で配布している[18]

リリース履歴[編集]

バージョン5.0の前に、技術プレビューと2つのアルファリリースと3つのベータリリースが存在した[19][20][21]

リリース履歴
バージョン 日付 備考
サポート終了:5.0 2014年7月7日[22] 初期リリースには、Qt 5.2が必要
サポート終了:5.1 2014年8月7日[23]
サポート終了:5.2 2014年9月12日[24]
サポート終了:5.3 2014年10月7日[25]
サポート終了:5.4 2014年11月6日[26]
サポート終了:5.5 2014年12月11日[27]
サポート終了:5.6 2015年1月8日[28] 新しいフレームワーク:KPackageおよびNetworkManagerQt
サポート終了:5.7 2015年2月14日[29]
サポート終了:5.8 2015年3月13日[30] 新しいフレームワーク:KPeopleおよびKXmlRpcClient
サポート終了:5.9 2015年4月10日[31] 新しいフレームワーク:ModemManagerQt
サポート終了:5.10 2015年5月8日[32]
サポート終了:5.11 2015年6月12日[33] 新しいフレームワーク:BlueZ-Qt(BlueZを参照)
サポート終了:5.12 2015年7月10日[34]
サポート終了:5.13 2015年8月12日[35] 新しいフレームワーク:Baloo(NEPOMUKの代わり)およびKFileMetaDataは、Qt 5.3を必要とする
サポート終了:5.14 2015年9月11日[36]
サポート終了:5.15 2015年10月10日[37]
サポート終了:5.16 2015年11月13日[38]
サポート終了:5.17 2015年12月12日[39]
サポート終了:5.18 2016年1月9日[40]
サポート終了:5.19 2016年2月13日[41]
サポート終了:5.20 2016年3月13日[42]
サポート終了:5.21 2016年4月9日[43] 新しいフレームワーク:KActivities-stats、Qt 5.4が必要に
サポート終了:5.22 2016年5月15日[44] 新しいフレームワーク:KWayland
サポート終了:5.23 2016年6月13日[45]
サポート終了:5.24 2016年7月9日[46]
サポート終了:5.25 2016年8月13日[47] Qt 5.5以降が必要に
サポート終了:5.26 2016年9月10日[48]
サポート終了:5.27 2016年10月8日[49]
サポート終了:5.28 2016年11月15日[50] 新しいフレームワーク:KSyntaxHighlighting[51]
サポート終了:5.29 2016年12月12日[52] 新しいフレームワーク:刑務所
サポート終了:5.30 2017年1月14日[53] KPackageのKNewStuffサポートを追加
サポート終了:5.31 2017年2月11日[54] 多くのモジュールにPythonバインディングがあり、Qt 5.6以降が必要に
サポート終了:5.32 2017年3月11日[55]
サポート終了:5.33 2017年4月8日[56]
サポート終了:5.34 2017年5月13日[57]
サポート終了:5.35 2017年6月1日[58]
サポート終了:5.36 2017年7月8日[59]
サポート終了:5.37 2017年8月13日[60] 新しいフレームワーク:Kirigami、Qt 5.7以降が必要に
サポート終了:5.38 2017年9月9日[61]
サポート終了:5.39 2017年10月14日[62]
サポート終了:5.40 2017年11月11日[63]
サポート終了:5.41 2017年12月10日[64]
サポート終了:5.42 2018年1月13日[65]
サポート終了:5.43 2018年2月12日[66] 新しいフレームワーク:KHolidays
サポート終了:5.44 2018年3月10日[67]
サポート終了:5.45 2018年4月14日[68]
サポート終了:5.46 2018年5月12日[69]
サポート終了:5.47 2018年6月9日[70]
サポート終了:5.48 2018年7月14日[71]
サポート終了:5.49 2018年8月11日[72]
サポート終了:5.50 2018年9月8日[73]
サポート終了:5.51 2018年10月15日[74]
サポート終了:5.52 2018年11月10日[75]
サポート終了:5.53 2018年12月9日[76]
サポート終了:5.54 2019年1月12日[77]
サポート終了:5.55 2019年2月9日[78]
サポート終了:5.56 2019年3月9日[79]
サポート終了:5.57 2019年4月13日[80]
サポート終了:5.58 2019年5月13日[81]
サポート終了:5.59 2019年6月8日[82]
サポート終了:5.60 2019年7月13日[83]
サポート終了:5.61 2019年8月10日[84]
サポート終了:5.62 2019年9月14日[85]
サポート終了:5.63 2019年10月12日[86]
サポート終了:5.64 2019年11月10日[87]
サポート終了:5.65 2019年12月14日[88]
サポート終了:5.66 2020年1月11日[89]
サポート終了:5.67 2020年2月9日[90]
サポート終了:5.68 2020年3月15日[91]
サポート終了:5.69 2020年4月11日[92]
サポート終了:5.70 2020年5月9日[93]
サポート終了:5.71 2020年6月13日[94]
サポート終了:5.72 2020年7月11日[95]
サポート終了:5.73 2020年8月8日[96]
サポート終了:5.74 2020年9月12日[97]
サポート終了:5.75 2020年10月10日[98]
サポート終了:5.76 2020年11月7日[99]
サポート終了:5.77 2020年12月12日[100]
サポート終了:5.78 2021年1月9日[101]
サポート終了:5.79 2021年2月13日[102]
サポート終了:5.80 2021年3月13日[103]
現行バージョン:5.81 2021年4月10日[104]
将来のリリース:5.82[105]
凡例
サポート終了
サポート中
現行バージョン
最新プレビュー版
将来のリリース

歴史[編集]

KDE FrameworksのソースコードはKDElibs 1の頃から存在する。最初にKDE Frameworksとしてリリースされたのはバージョン5で、コードベースがKDE Platformのバージョン 4(KDE Platform英語版の唯一のメジャーバージョン)であったことを考慮された。

KDE Platformから KDE Frameworksへの移行は2013年8月に開始された[7]

KDE Frameworks 5.0の初期リリース後、開発者はMozilla FirefoxとKDEの統合性の向上[106]などのように、KDE Frameworks 5に新たな機能を追加することに焦点を当てている[107]

KDE Frameworks 5の主な改良点は、モジュール化の強化である。KDE Frameworks 5以前はライブラリは単一の大きなパッケージから構成されていたが、KDE Frameworks 5ではライブラリは小さなパッケージに分割された。このことにより依存関係を最小限に抑えることができ、他のQtベースのアプリケーションでの利用が容易になった[7]

KDE 4はQtウィジェットツールキットのバージョン4に基づいていたが、Frameworks 5からバージョン5に基づくようになった。

採用[編集]

KDE FrameworksはKDE Software Compilation以外にも、デスクトップ環境LXQtやMoonLightDE、Hawaiiなどに採用されている。

Calligra SuiteラスターグラフィックスエディタであるKritaは、2016年5月31日にリリースされたバージョン3.0以降はKDE Frameworks 5とQt 5に依存している。バージョン2.8以前はKDE Platform 4とQt 4に依存していた[108]

Kirigamiにより、AmarokAvogadroTrojitá英語版Subsurface英語版などのアプリケーションでの利用も増えている。

脚注[編集]

  1. ^ https://www.kde.org/announcements/kde-frameworks-5.24.0.php
  2. ^ https://community.kde.org/Android
  3. ^ https://api.kde.org/
  4. ^ First release of KDE Frameworks 5” (2014年7月7日). 2020年11月6日閲覧。
  5. ^ The KDE Frameworks”. API Documentation. 2020年11月6日閲覧。
  6. ^ KDE Frameworks”. Tech Base. 2020年11月6日閲覧。
  7. ^ a b c Howard Chan (2013年9月4日). “KDE Release Structure Evolves”. KDE. 2014年2月27日閲覧。
  8. ^ Release schedule for KDE Frameworks 5”. 2020年11月6日閲覧。
  9. ^ Git workflow for Frameworks”. 2020年11月6日閲覧。
  10. ^ KDE Frameworks5 API documentation”. 2014年8月22日時点のオリジナルよりアーカイブ。2020年11月6日閲覧。
  11. ^ Coinstallability with KDE Platform 4”. 2020年11月6日閲覧。
  12. ^ metainfo.yaml of KConfig”. 2020年11月6日閲覧。
  13. ^ Frameworks 5”. KDE (2013年9月25日). 2018年7月26日閲覧。
  14. ^ Qt 5.2 - Foundation for KDE Frameworks 5”. KDE (2013年12月17日). 2018年7月26日閲覧。
  15. ^ Howard Chan (2013年9月25日). “Frameworks 5”. Dot.kde.org. 2014年3月10日閲覧。
  16. ^ a b http://blog.martin-graesslin.com/blog/2014/02/kwindowsystem-in-frameworks-5/
  17. ^ KGlobalAccel in Debian”. 2020年11月6日閲覧。
  18. ^ KGlobalAccel in Fedora”. 2020年11月6日閲覧。
  19. ^ Frameworks 5 Technology Preview”. KDE (2014年1月7日). 2020年11月6日閲覧。
  20. ^ KDE Ships First Alpha of Frameworks 5”. KDE (2014年2月14日). 2020年11月6日閲覧。
  21. ^ KDE Ships Second Alpha of Frameworks 5”. KDE (2014年3月3日). 2020年11月6日閲覧。
  22. ^ First release of KDE Frameworks 5”. KDE (2014年7月7日). 2017年12月31日閲覧。
  23. ^ Second release of KDE Frameworks 5”. KDE (2014年8月7日). 2017年12月31日閲覧。
  24. ^ Release of KDE Frameworks 5.2.0”. KDE (2014年9月12日). 2015年3月5日閲覧。
  25. ^ Release of KDE Frameworks 5.3.0” (2014年10月7日). 2014年3月5日閲覧。
  26. ^ Release of KDE Frameworks 5.4.0”. KDE (2014年11月6日). 2015年3月5日閲覧。
  27. ^ Release of KDE Frameworks 5.5.0”. KDE (2014年12月11日). 2015年3月5日閲覧。
  28. ^ Release of KDE Frameworks 5.6.0”. KDE (2015年1月8日). 2015年3月5日閲覧。
  29. ^ Release of KDE Frameworks 5.7.0”. KDE (2015年2月14日). 2015年3月5日閲覧。
  30. ^ Release of KDE Frameworks 5.8.0”. KDE (2015年3月13日). 2015年3月13日閲覧。
  31. ^ Release of KDE Frameworks 5.9.0”. KDE (2015年4月10日). 2015年4月30日閲覧。
  32. ^ Release of KDE Frameworks 5.10.0”. KDE (2015年5月8日). 2015年5月9日閲覧。
  33. ^ Release of KDE Frameworks 5.11.0”. KDE. 2015年6月29日閲覧。
  34. ^ Release of KDE Frameworks 5.12.0”. KDE. 2015年7月10日閲覧。
  35. ^ Release of KDE Frameworks 5.13.0”. KDE (2015年8月12日). 2015年8月12日閲覧。
  36. ^ Release of KDE Frameworks 5.14.0”. KDE (2015年9月12日). 2015年9月12日閲覧。
  37. ^ Release of KDE Frameworks 5.15.0”. KDE (2015年10月10日). 2018年7月26日閲覧。
  38. ^ Release of KDE Frameworks 5.16.0”. KDE (2015年11月13日). 2018年7月26日閲覧。
  39. ^ Release of KDE Frameworks 5.17.0”. KDE (2015年12月12日). 2018年7月26日閲覧。
  40. ^ Release of KDE Frameworks 5.18.0”. KDE (2016年1月9日). 2018年7月26日閲覧。
  41. ^ Release of KDE Frameworks 5.19.0”. KDE (2016年2月13日). 2018年7月26日閲覧。
  42. ^ Release of KDE Frameworks 5.20.0”. KDE (2016年3月13日). 2017年12月31日閲覧。
  43. ^ Release of KDE Frameworks 5.21.0”. KDE (2016年4月9日). 2016年4月9日閲覧。
  44. ^ Release of KDE Frameworks 5.22.0”. KDE (2016年5月15日). 2016年5月15日閲覧。
  45. ^ Release of KDE Frameworks 5.23.0”. KDE (2016年6月13日). 2016年6月14日閲覧。
  46. ^ Release of KDE Frameworks 5.24.0”. KDE (2016年7月9日). 2016年7月10日閲覧。
  47. ^ Release of KDE Frameworks 5.25.0”. KDE (2016年8月13日). 2016年8月21日閲覧。
  48. ^ Release of KDE Frameworks 5.26.0”. KDE (2016年9月10日). 2016年10月8日閲覧。
  49. ^ Release of KDE Frameworks 5.27.0”. KDE (2016年10月8日). 2016年10月8日閲覧。
  50. ^ Release of KDE Frameworks 5.28.0”. KDE (2016年11月15日). 2016年11月15日閲覧。
  51. ^ KSyntaxHighlighing: A new Syntax Highlighting Framework”. KDE (2016年11月15日). 2016年11月21日閲覧。
  52. ^ Release of KDE Frameworks 5.29.0”. KDE (2016年12月12日). 2016年12月13日閲覧。
  53. ^ Release of KDE Frameworks 5.30.0”. KDE (2017年1月14日). 2017年1月27日閲覧。
  54. ^ Release of KDE Frameworks 5.31.0”. KDE (2017年2月11日). 2017年2月19日閲覧。
  55. ^ Release of KDE Frameworks 5.32.0”. KDE (2017年3月11日). 2017年3月11日閲覧。
  56. ^ Release of KDE Frameworks 5.33.0”. KDE (2017年4月8日). 2017年4月8日閲覧。
  57. ^ Release of KDE Frameworks 5.34.0”. KDE (2017年5月13日). 2017年5月13日閲覧。
  58. ^ Release of KDE Frameworks 5.35.0”. KDE (2017年6月10日). 2017年6月10日閲覧。
  59. ^ Release of KDE Frameworks 5.36.0”. KDE (2017年7月8日). 2017年7月8日閲覧。
  60. ^ Release of KDE Frameworks 5.37.0”. KDE (2017年8月13日). 2017年9月9日閲覧。
  61. ^ Release of KDE Frameworks 5.38.0”. KDE (2017年9月9日). 2017年9月9日閲覧。
  62. ^ Release of KDE Frameworks 5.39.0”. KDE (2017年10月14日). 2017年12月31日閲覧。
  63. ^ Release of KDE Frameworks 5.40.0”. KDE (2017年11月11日). 2017年12月31日閲覧。
  64. ^ Release of KDE Frameworks 5.41.0”. KDE (2017年12月10日). 2017年12月31日閲覧。
  65. ^ Release of KDE Frameworks 5.42.0”. KDE (2018年1月13日). 2018年1月15日閲覧。
  66. ^ Release of KDE Frameworks 5.43.0”. KDE (2018年2月12日). 2018年2月12日閲覧。
  67. ^ Release of KDE Frameworks 5.44.0”. KDE (2018年3月10日). 2018年4月14日閲覧。
  68. ^ Release of KDE Frameworks 5.45.0”. KDE (2018年4月14日). 2018年4月14日閲覧。
  69. ^ Release of KDE Frameworks 5.46.0”. KDE (2018年5月12日). 2018年5月12日閲覧。
  70. ^ Release of KDE Frameworks 5.47.0”. KDE (2018年6月9日). 2018年6月9日閲覧。
  71. ^ Release of KDE Frameworks 5.48.0”. KDE (2018年7月14日). 2019年4月1日閲覧。
  72. ^ Release of KDE Frameworks 5.49.0”. KDE (2018年8月11日). 2019年4月1日閲覧。
  73. ^ Release of KDE Frameworks 5.50.0”. KDE (2018年9月8日). 2019年4月1日閲覧。
  74. ^ Release of KDE Frameworks 5.51.0”. KDE (2018年10月15日). 2019年4月1日閲覧。
  75. ^ Release of KDE Frameworks 5.52.0”. KDE (2018年11月10日). 2019年4月1日閲覧。
  76. ^ Release of KDE Frameworks 5.53.0”. KDE (2018年12月9日). 2019年4月1日閲覧。
  77. ^ Release of KDE Frameworks 5.54.0”. KDE (2019年1月12日). 2019年4月1日閲覧。
  78. ^ Release of KDE Frameworks 5.55.0”. KDE (2019年2月9日). 2019年4月1日閲覧。
  79. ^ Release of KDE Frameworks 5.56.0”. KDE (2019年3月9日). 2019年4月1日閲覧。
  80. ^ Release of KDE Frameworks 5.57.0”. KDE (2019年4月13日). 2019年4月23日閲覧。
  81. ^ Release of KDE Frameworks 5.58.0”. KDE (2019年5月13日). 2019年6月27日閲覧。
  82. ^ Release of KDE Frameworks 5.59.0”. KDE (2019年6月8日). 2019年6月27日閲覧。
  83. ^ Release of KDE Frameworks 5.60.0”. KDE (2019年7月13日). 2019年7月17日閲覧。
  84. ^ Release of KDE Frameworks 5.61.0”. KDE (2019年8月10日). 2019年8月12日閲覧。
  85. ^ Release of KDE Frameworks 5.62.0”. KDE (2019年9月14日). 2019年9月14日閲覧。
  86. ^ Release of KDE Frameworks 5.63.0”. KDE (2019年10月12日). 2019年10月14日閲覧。
  87. ^ Release of KDE Frameworks 5.64.0”. KDE (2019年11月10日). 2019年11月10日閲覧。
  88. ^ Release of KDE Frameworks 5.65.0”. KDE (2019年12月14日). 2020年1月12日閲覧。
  89. ^ Release of KDE Frameworks 5.66.0”. KDE (2020年1月11日). 2020年1月12日閲覧。
  90. ^ Release of KDE Frameworks 5.67.0”. KDE (2020年2月9日). 2020年2月10日閲覧。
  91. ^ Release of KDE Frameworks 5.68.0”. KDE (2020年3月15日). 2020年3月16日閲覧。
  92. ^ Release of KDE Frameworks 5.69.0”. KDE (2020年4月11日). 2020年4月13日閲覧。
  93. ^ Release of KDE Frameworks 5.70.0”. KDE (2020年5月9日). 2020年5月9日閲覧。
  94. ^ Release of KDE Frameworks 5.71.0”. KDE (2020年6月13日). 2020年6月13日閲覧。
  95. ^ Release of KDE Frameworks 5.72.0”. KDE (2020年7月11日). 2020年7月14日閲覧。
  96. ^ Release of KDE Frameworks 5.73.0”. KDE (2020年8月8日). 2020年8月10日閲覧。
  97. ^ Release of KDE Frameworks 5.74.0”. KDE (2020年9月12日). 2020年9月12日閲覧。
  98. ^ Release of KDE Frameworks 5.75.0”. KDE (2020年10月10日). 2020年10月12日閲覧。
  99. ^ Release of KDE Frameworks 5.76.0”. KDE (2020年11月7日). 2020年11月15日閲覧。
  100. ^ KDE Ships Frameworks 5.77.0”. KDE (2020年12月12日). 2020年12月13日閲覧。
  101. ^ KDE Ships Frameworks 5.78.0”. KDE (2021年1月9日). 2021年1月10日閲覧。
  102. ^ KDE Ships Frameworks 5.79.0”. KDE (2021年2月13日). 2021年2月15日閲覧。
  103. ^ KDE Ships Frameworks 5.80.0”. KDE (2021年3月13日). 2021年3月21日閲覧。
  104. ^ KDE Ships Frameworks 5.81.0”. KDE (2021年4月10日). 2021年4月10日閲覧。
  105. ^ Schedules/Frameworks”. KDE. 2021年4月10日閲覧。
  106. ^ Firefox + KDE integration: Getting FF to use Dolphin reliably” (2014年7月3日). 2020年11月6日閲覧。
  107. ^ KF5 Update Meeting Minutes 2014-w28” (2014年7月8日). 2020年11月6日閲覧。
  108. ^ Krita 3.0リリース”. Krita Foundation (2016年5月31日). 2018年7月26日閲覧。

関連項目[編集]

外部リンク[編集]