同じソースからテキストユーザーインターフェイス(ncurses)とグラフィカルユーザーインターフェイス(GTK?QT?)の両方を構築できるUIライブラリはありますか?debconfはさまざまなフロントエンドで使用できることを知っています。似ているがプログラム可能なものを構築したいと思います。
8 に答える
1 つのコードベースで ncurses、gtk、および qt を実行するために YaST の独立性を強化するライブラリは、探しているものを提供し、YaST 自体に結び付けられていません。
実際、libyui は標準の C++ ライブラリと phtreads (IIRC) のみを必要とします。もちろん、UI プラグインにはそれぞれのライブラリ (Qt、ncurses) が必要です。YaST は、libyui の上に YCP のような API をエクスポートする一連の YCP バインディングを介して libyui を使用します。
このライブラリは少し低レベル (イベント ループの 1 層下) です。私の同僚の Klaus Kämpf は、swig を使用してスクリプト言語にバインドするなど、以前のブログでライブラリの使用について書いています。
SUSE 固有の部分はパッケージだけなので、自分でパッケージ化する必要があります。Stackoverflow では、複数回リンクすることはできませんでした。ライブラリのコードは Klaus ブログからリンクされています。libyui を「qt」に、「ncurses」をプラグインのコードに置き換えます。
また、「YCP からの YaST の独立性」をググって、このテーマに関する Andreas Jäger のブログ エントリを見つけてください。
正確にはライブラリではありませんが、Lynxによく劣化するWebアプリを作成することを検討できます。
ncurses を使用するようにプログラムを作成し、PDCursesを使用してそれを X11 アプリケーションに変換することができます (readme が宣伝しているように)。
X11機能をテストしたことはありませんが、ポータブルcursesとして使用したので知っています
Cursed GTKがありますが、少し時代遅れのようです。Qt Consoleと呼ばれるncursesへのQtのポートへの参照をいくつか見つけましたが、消えたようです。
テキスト モードと GUI 環境の両方を対象とするライブラリを使用すると、両方の最悪の環境で行き詰まる大きなリスクがあります。
MVC パターンを使用してコードを構造化し、対象のプラットフォームごとに個別のビューとコントローラーを提供することをお勧めします。すべてのロジックをモデル クラスにプッシュすることには、他にもいくつかの利点があります。
- ユーザー インターフェイスを実際のドメイン ロジックから除外する必要があるため、コードのテストが容易になります。
- プログラムには、Web UI や音声駆動の UI など、ほとんど共通点のないユーザー インターフェイスを含めることができます。
- コントローラー クラスと同じ方法でモデル クラスに直接アクセスすることにより、UI をまったく使用せずにプログラムを簡単に実行できます (つまり、スクリプトを作成します)。
コンパイル時にLinuxカーネルを構成するために使用されるのはdialog/cdialog/xdialogだと思います。しかし、カーネルをコンパイルしてからしばらく経ちましたので、メモリがオフになっている可能性があります。私が見つけることができる最も有望なリンクは、Xdialogのこれです。
多分 tcl/tk はあなたが望むものを提供するでしょうhttp://www.tcl.tk/
これは、curses とのインターフェースに関するページです。そこには ncurses との統合の主張があります。