GUI システム開発リソース?[閉まっている]
-
08-06-2019 - |
質問
グラフィック ユーザー インターフェイス (できれば C/C++ で) を作成するための適切なリソースを誰かが推奨してもらえますか?
現在、私に最も大きな影響を与えているのは、 3DBuzz.comさんの C++/OpenGL VTM (ビデオ トレーニング モジュール)。これらは非常に優れていますが、グラフィックス プログラミングの広い領域をカバーしているため、GUI プログラミングの表面をざっと読むだけにしてください。
この質問は「GUIはどうやって作るのですか?」には、私の現在の構造の大まかな概要も記載されています。
ご返答いただければ幸いです。
編集:回答の一部を読んだところ、いくつかの点を見逃していることに気づきました。ボタンを間違えて押し忘れたため、質問を 2 回入力しなければなりませんでした。
重要な点を 2 つ見逃していました。まず、次のとおりです。これは、Sony PSP の自作を含むクロスプラットフォームで使用されます。2番目:既存のGUIシステムを利用せずにGUIシステムを作成したい。
編集2: 要点を見逃している人もいると思いますが、私にはどうしようもありません 使用 既存の GUI システムを構築したいと考えています。
現在の形式の Qt は PSP に移植できませんが、そのようなタスクが過剰であることは気にしないでください。
ということで、IM-GUI を作成することにし、コードのプロトタイプを作成し始めました。
解決
従来の GUI ツールキット (例: Qt, wxウィジェット, GTK, 、など)。OpenGL グラフィックスをホストするための簡単な GUI が必要なだけの場合は、 FLTK 良い選択です。それ以外の場合、OpenGL で GUI を直接レンダリングするには、次のようなライブラリが必要です。 クレイジーエディのGUI まさにそれを行い、多くの機能を提供します スキン可能 ウィジェット 再発明する必要がなくなるということです。ウィンドウと OpenGL コンテキストは、次のようなポータブル ライブラリで提供できます。 SDL.
編集:今、戻ってあなたの様子を見てみたら、 他の投稿 あなたが尋ねていることをよりよく理解できるようになったと思います。Nintendo DS のような組み込みシステム上の GUI の場合は、「イミディエイト モード」GUI の使用を検討します。 ヤリ・コンッパ があります それらについての良いチュートリアル, ただし、C++ では、彼が提示する C コードよりもオブジェクト指向のアプローチを使用することもできます。
他のヒント
http://www.fox-toolkit.org 特定のフレームワークを使用する方法を探している場合は、API リファレンスを参照してください。それとも、一般理論や、低レベルの処理を自分で行う方法に興味がありましたか?
「即時モード」GUI の詳細については、以下をお勧めします。 モリー ロケットのフォーラム. 。IM-GUI の背後にある考え方を説明する優れたビデオ プレゼンテーションと、多くのディスカッションがあります。
私は最近、Jari のページのプレゼンテーションに基づいて非常に迅速な IM-GUI システムをハッキングしました。私の場合は、画面上にいくつかのボタンとボックスを表示できるようにしたいだけで、多かれ少なかれ単なるハード コードでした。入力に対する応答を考えると、より本格的な GUI アーキテクチャを目指すのではなく、これが正しいことだと感じました。(これは DirectX アプリケーションで行われたため、選択肢の数はかなり限られていました)。
最も速い方法の 1 つは、pyQt、PyFLTK、tkinter、wxPython などの gui バインディングで Python を使用するか、SDL を使用する pygame 経由で Python を使用することです。
簡単に速く、プラットフォームに依存しません。また、パッケージの管理も優れています。
見る:
- http://wiki.python.org/moin/PyQt
- http://www.fltk.org/
- (tkinter はデフォルトであり、既に Python にパッケージ化されています)
- http://wxpython.org/
- http://www.pygame.org/news.html
PSP のようなプラットフォームの場合、IM GUI ソリューションのパフォーマンスが少し心配になります。従来の保持モード タイプのソリューションでは、コントロールを作成するときに、頂点バッファ/表示リスト、またはそれをレンダリングするために必要なものを作成することもできます。イミディエイト モードのソリューションでは、フレームごとにこれを動的に再作成する必要があるように思えます。
いくつかのボタンを操作するだけの場合、またはゲーム内で使用する予定がない場合 (ゲームを作成していると仮定して)、これは気にならないかもしれませんが、特にかなりの量のテキストがある場合は、コストがかかります。表示リストをキャッシュする方法が見つからないと、レンダリングに問題が生じる可能性があります。
見て Qt. 。GUIを作成するためのオープンソースライブラリです。Java の Swing とは異なり、多くのことを前提としているため、機能的な GUI を作成するのは非常に簡単です。たとえば、テキストエリアは、コピー、貼り付け、すべて選択などで右クリックしたときにコンテキスト メニューが必要であることを前提としています。の ドキュメンテーション もとても良いです。
2 番目に Qt を実行します。クロスプラットフォームです、見つけました 多くの Visual Studio の組み込み GUI よりも操作が簡単です。デュアルライセンスなので、コードを GPL にしたくない場合は、代わりにライセンスを購入できます。
私は Molley Rocket のビデオを見て、Jari Komppa のキャッシュされたチュートリアルを調べました。
IM-GUI が最善の方法のようです。当初考えていたシステムよりもはるかに合理化され、構築がはるかに早くなると思います。
新しい問題ですが、答えは 1 つだけです。:(
Monjardin と dooz に改めて感謝し、乾杯。
thing2k