事実上すべての GUI はメイン ループを使用してコードを実行する (たとえば、ユーザー インターフェイスを変更する) ため、実際の実装を抽象化するためのライブラリはありますか? 同様にstd::thread
、使用している GUI ツールキットに関係なく、共通のインターフェイスを持つことは素晴らしいことです。
オープンソースの場合は 1 ボーナス ポイント、許容ライセンス (BSD、MIT など) の場合は 2 ポイント。
事実上すべての GUI はメイン ループを使用してコードを実行する (たとえば、ユーザー インターフェイスを変更する) ため、実際の実装を抽象化するためのライブラリはありますか? 同様にstd::thread
、使用している GUI ツールキットに関係なく、共通のインターフェイスを持つことは素晴らしいことです。
オープンソースの場合は 1 ボーナス ポイント、許容ライセンス (BSD、MIT など) の場合は 2 ポイント。
高速で汎用的なイベント ループを探している場合は、libev http://software.schmorp.de/pkg/libev.htmlを使用できます。
代わりに、さまざまな GUI (Gtk、Windows、Cocoa など) のイベント ループに一貫したインターフェイスを提供する一連のラッパー関数を探している場合は、wxWidgets http://www.wxwidgets. org/がそれを処理します (処理する場合)。
Zincはそのようなライブラリです。私は何年も前に使用していたので、かなり長い間 (10 年以上) 使用されてきました。
Zinc には、オブジェクト指向の C++ プラットフォームに依存しないフレームワークとして完全なソース コードが付属しており、クロス プラットフォーム アプリケーションのグラフィカル ユーザー インターフェイス (GUI) を実装するために使用されます。Zinc は、イベント駆動型の GUI アプリケーションを作成するための、スケーラブルでカスタマイズ可能なフル機能のツールキットです。Zinc は組み込みおよびデスクトップ プラットフォームで使用できます。組み込みプラットフォーム用の Zinc は、Wind River の VxWorks などのリアルタイム オペレーティング システムで利用できます。Zinc は、Zinc オブジェクトのネイティブ プラットフォームのルック アンド フィールを利用します。