1

できれば C/C++ で、グラフィック ユーザー インターフェイスを作成するための優れたリソースを推奨できますか?

現在、私が最も影響を受けているのは3DBuzz.comC++/OpenGL VTM (Video Training Modules) です。それらは非常に優れていますが、グラフィックス プログラミングの広い領域をカバーしているため、GUI プログラミングの表面をすくい取るだけにしてください。

この質問は、「GUI を作成するにはどうすればよいですか?」に関連しており、現在の構造の大まかな概要も記載されています。

任意の応答をいただければ幸いです。

編集: いくつかの回答を読んだところ、いくつかの点を見逃していることに気付きました。間違ったボタンを見つけて紛失したため、質問を 2 回入力する必要がありました。

最初に 2 つの重要な点を見逃していました。これは、Sony PSP のホームブリューを含むクロスプラットフォームで使用されます。2 番目: 既存の GUI システムを使用しない GUI システムを作成したい。

編集 2:ポイントを見逃している人もいると思います。構築したい既存の GUI システムを使用する方法がわかりません。

現在の形式の Qt は PSP に移植できません。そのようなタスクのやり過ぎは気にしないでください。

そうは言っても、IM-GUI を作成することに決め、コードのプロトタイプを作成し始めました。

4

9 に答える 9

2

従来の GUI ツールキット (例: QtwxWidgetsGTKなど) では得られないと思われるハードウェア アクセラレーションや 3D 効果を計画している場合を除き、GUI に OpenGL を使用することはありません。OpenGL グラフィックスをホストするためのすばやくシンプルな GUI が必要な場合は、 FLTKが最適です。それ以外の場合は、OpenGL で直接 GUI をレンダリングするために、Crazy Eddie の GUI のようなライブラリを使用して、それを行い、再発明する必要のない多くのスキン可能な ウィジェットを提供します。ウィンドウと OpenGL コンテキストは、 SDLのような移植可能なライブラリを提供できます。

編集:戻ってあなたの他の投稿を見たので、あなたが求めていることをよりよく理解していると思います。Nintendo DS のような組み込みシステムの GUI については、「即時モード」GUI の使用を検討します。Jari Komppaにはそれらに関する優れたチュートリアルがありますが、彼が提示する C コードよりも C++ を使用したオブジェクト指向のアプローチを使用できます。

于 2008-08-17T13:18:18.673 に答える
1

「イミディエイトモード」GUIの詳細については、MollyRocketフォーラムをお勧めします。IM-GUIの背後にある考え方の優れたビデオプレゼンテーションと、多くの議論があります。

私は最近、Jariのページでのプレゼンテーションに基づいて非常に高速なIM-GUIシステムをハッキングしました。私の場合は、画面にいくつかのボタンとボックスを表示し、多かれ少なかれハードコードを表示できるようにしたかっただけです。入力への応答は、より本格的なGUIアーキテクチャを採用するのではなく、本当に正しいことのように感じました。(これはDirectXアプリケーションに含まれていたため、選択肢の数はかなり限られていました)。

于 2008-08-18T10:13:45.660 に答える
1

PSP のようなプラットフォームの場合、IM GUI ソリューションのパフォーマンスが少し気になります。従来の保持モード タイプのソリューションでは、コントロールを作成するときに、頂点バッファー/表示リスト、またはレンダリングに必要な what-have-you も作成できます。即時モードのソリューションでは、これをフレームごとに動的に再作成する必要があるように思えます。

少数のボタンしか使用しない場合、またはゲーム内で使用しない場合 (ゲームを作成している場合) は、これを気にしないかもしれませんが、特にかなりの量のテキストがある場合は、何らかの方法で表示リストをキャッシュする方法が見つからない場合、レンダリングの負荷がかかり始める可能性があります。

于 2008-08-19T18:14:50.227 に答える
1

Qtを見てください。GUI を作成するためのオープン ソース ライブラリです。Java の Swing とは異なり、多くのことを前提としているため、機能的な GUI を簡単に作成できます。たとえば、テキストエリアは、コピー、貼り付け、すべて選択などで右クリックしたときにコンテキスト メニューが必要であると想定しています。ドキュメントも非常に優れています。

于 2008-08-17T12:58:57.013 に答える
1

特定のフレームワークを使用する方法を探している場合は、http://www.fox-toolkit.orgに API リファレンスがあります。それとも、一般理論や、低レベルのものを自分で行う方法にもっと興味がありましたか?

于 2008-08-17T13:03:00.653 に答える
1

最速の方法の 1 つは、python を pyQt、PyFLTK、tkinter、wxPython などの GUI バインディングで使用するか、SDL を使用する pygame を介して使用することです。

簡単で高速で、プラットフォームに依存しません。また、パッケージの管理は無敵です。

見る:

于 2008-08-19T13:49:31.153 に答える
0

Molley Rocketのビデオを見て、JariKomppaのキャッシュされたチュートリアルを調べました。

IM-GUIは最善の方法のようです。私が当初考えていたシステムよりも、はるかに合理化され、構築がはるかに迅速になると思います。

今、新しい問題ですが、私は1つの答えしか除外できません。:(

Monjardinとdoozにもう一度感謝します、乾杯。

things2k

于 2008-08-19T11:19:04.920 に答える
0

2番目のQtです。これはクロスプラットフォームであり、組み込みのVisualStudioGUIのものよりもはるかに簡単に操作できることがわかりました。デュアルライセンスであるため、コードをGPLにしたくない場合は、代わりにライセンスを購入できます。

于 2008-08-18T13:23:17.603 に答える
0

GLAMGLGooeyを見てみます

于 2008-08-19T11:47:09.277 に答える