回答:
いいえ。毎年、誰かが新しいPygame UIライブラリを作成し、いくつかのバージョンの後でそれを放棄します。おそらく、ボタンレイアウトの作成は簡単ですが、完全なUIライブラリの作成は実際の作業です。Pygameサイトのgui
タグはこれらのいくつかを記録しています。
2011年1月に戻って、私はpygame用の5つのGUIツールキットを調べ、それらすべてをPython 3で動作させるようにしました。5つは、Albow、GooeyPy、PGU、pqGUI、sgcです。
私はGooeyPyで成功しませんでしたが、他の4つはPython 3で動作しました(シャンディブラウンのプーティンも試したかったのですが、見つかりませんでした。Ocempは完全に見落としていました)。
残念ながら、AlbowとOcempはほとんど死んでいるようです。 Albowは2009年に最後に更新され、Ocempは2008年に最後に更新されました。(pygame.orgのAlbowのバージョンは最新のものではないことに注意してください。)
PGU(Phil's Pygame Utilities)はPeter Rogersによって引き継がれ、保守されました。VictorKamはそのほとんどをPython 3に変換しました。これは2012年1月に最後に更新され、私が調べてからおそらく改善されています。(pygame.orgのPGUのバージョンは最新ではありません。)
sgcは新しいものであり、私がそれを見たときはまだ非常に不完全です。ただし、現在は積極的に開発されており、大幅に改善される可能性があります。(pygame.orgのsgcのバージョンは最新のものではないことに注意してください。)
単純なLines-Of-Codeカウンターを介して5つそれぞれを実行し、サイズを測定しました。
結果は次のとおりです(2011年1月):
肘コードmin = 2810、max = 4551(max =最小の162%) Albow \ demo最小= 453、最大= 649 GooeyPy \ gooeypy min = 2034、max = 3941(max = 194%of min) GooeyPy \ examples最小= 178、最大= 351 pgu \ pgu min = 2910、max = 7047(最大=最小の242%) 含む pgu \ pgu \ gui min = 1678、max = 4638(最大=最小の276%) pgu \ examples min = 822、max = 2527 pqGUI.py min = 1586、max = 1834(max =最小の116%) Example.py最小= 178、最大= 225 sgc(不完全)min = 889、max = 1243(max =最小の140%)
いずれの場合も、空白とコメントはカウントされないため、「最小」の数値はツールキットの「サイズ」をよりよく表します。「最大」の数値が最小の数値に非常に近い場合は、コードに空白やコメントがあまりないことを意味します。 pqGUIはそれを例証します。コメントがほとんどない(そしてdocstringsもない)ため、これはあまりにも悪いことです。
主な警告:docstringはコメントとしてカウントされません! そのため、docstringのないPGU、sgc、およびGooeyPyは、docstringのないAlbowおよびpqGUIと比較して、太く見え、実際よりもドキュメントが少なくなります。
作成するウィジェットの外観が好きだったのでpqGUIが好きでしたが、サポートも文書化もされておらず、作者を見つけることができませんでした。
5つのうち、2011年1月の時点で、PGUは明確なリーダーでした。しかし、5つすべてに不満だったので、自分で書きました。(注:PGUとsgcの両方が更新されており、おそらく私がそれらを見て以来、改善されています。)
Joe Wreschnigの苦痛な観察(上記)によると、私のGUIツールキットは他のすべてと同様に不完全です。しかし、それはそれのためにいくつかのことを行っています。
ただし、ファイルを開く/コンボボックスのダイアログやテーブルなど、必要になる可能性のある重要なコントロールがいくつかありません。存在するコントロールは見栄えは良いですが、タイトルバーやスクロールバーなどの機能は、幅を調整できるのではなく、幅が固定されたピクセル数です。コードはよくコメントされており、使用例を含むデモアプリがありますが、適切な使用方法のドキュメントはありません。また、プレベータ版であるため、すべて変更される可能性があります。
そのコード行カウンターの結果は次のとおりです。
DavesGUI(デモコードあり)min = 2267、max = 3055(max = minの135%) (デモコードなし)min = 2018、max = 2644(max = minの131%) (docstringsがコメント化された状態で)min = 1442、max = 2644(max = minの183%)
これらの制限にもかかわらず、誰かが試してみたい場合は、メールで私に連絡してください。「DavesGUI」について尋ねます。私のメールアドレスはこちらです:http : //www.burtonsys.com/email/
私は最近、pygameで使用されるpygtkを確認しました。gtk描画領域ウィジェットで公開イベントを使用し、gtkメインループを通過するたびにpygameデータを更新するようにしてください。完全なguiツールキットをpygame内で動作させたい場合は、それは起こりませんが、完全なguiツールキットをpygameで使用したい場合は、運が良ければ、pygtkが適しています。Cプログラミング言語を使用してgtkを使用し、pygameをウィジェットとして描画領域にインポートして、ボートがフロートし、ターボチャージャー付きの速度が必要な場合は、pythonでpygameを更新することもできます。なぜ大騒ぎするのか、グーグルを使用して答えを見つけて実装するだけで、難しくはありません。ちなみにpygameは本当にクールです。それらの人はそれに多くの仕事を入れました、そしてそれはとても驚くほど効率的に働きます。
GameEngineライブラリに非常に基本的なGUI要素を追加しました:http ://aharrisbooks.net/pythonGame/ch10/ (Pythonでのゲーム開発に関する本に含まれています)
標準のスプライトに基づいた非常にシンプルなGUI要素を作成しました。ラベル、ボタン、マルチラインラベル、ミニスクロールバーです。
これらのツールは非常に基本的ですが、多くの用途に適しています。もちろん、ライブラリは完全にオープンソースなので、必要に応じて自由に変更してください。追加しなかった(まだ)ユーザーインターフェイス要素の1つは、テキスト入力ウィジェットでした。これは、イベントモデルが他のモデルよりもはるかに複雑で、締め切りが迫っていたためです。
(本を使っていてもいなくても)自由に遊んで、問題が発生した場合はお知らせください。お手伝いさせていただきます。
コースのビデオをhttp://synapse.cs.iupui.edu/Mediasite/Catalog/で入手できます
N451コースを見てください。それはゲーム開発に関するものです。
Google Summer of Codeに新しいGUIが追加されました:http : //blog.sambull.org/pygame-gui-0-2