Pygameに適したUIウィジェットツールキットはありますか?[閉まっている]


8

Pygameに適した最新のウィジェットツールキットはありますか?私はPGUを見てきましたが、それは明らかにメンテナンスされていません。

回答:



8

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ツールキットは他のすべてと同様に不完全です。しかし、それはそれのためにいくつかのことを行っています。

  • Python 2.6、2.7、3.1、3.2、およびおそらく3.3で動作します。
  • これはスプライトベースで、通信にpygameイベントを使用するため、イベントループを引き継ぐことなく、既存のpygameプログラムに簡単にドロップできます。ウィジェットはpygame.sprite.Spriteからサブクラス化されます。
  • フォーム、ボタン、チェックボックス、モーダルおよび非モーダルのメッセージボックスとダイアログボックス、垂直メニュー、テキスト入力ボックス、およびスライダー(スクロールバー)をサポートしています。
  • 重なり合うコントロール/ウィジェット、ウィジェットの移動とサイズ変更、フォーム内のフォームをスムーズに処理します。

ただし、ファイルを開く/コンボボックスのダイアログやテーブルなど、必要になる可能性のある重要なコントロールがいくつかありません。存在するコントロールは見栄えは良いですが、タイトルバーやスクロールバーなどの機能は、幅を調整できるのではなく、幅が固定されたピクセル数です。コードはよくコメントされており、使用例を含むデモアプリがありますが、適切な使用方法のドキュメントはありません。また、プレベータ版であるため、すべて変更される可能性があります。

そのコード行カウンターの結果は次のとおりです。

    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/


1

私は最近、pygameで使用されるpygtkを確認しました。gtk描画領域ウィジェットで公開イベントを使用し、gtkメインループを通過するたびにpygameデータを更新するようにしてください。完全なguiツールキットをpygame内で動作させたい場合は、それは起こりませんが、完全なguiツールキットをpygameで使用したい場合は、運が良ければ、pygtkが適しています。Cプログラミング言語を使用してgtkを使用し、pygameをウィジェットとして描画領域にインポートして、ボートがフロートし、ターボチャージャー付きの速度が必要な場合は、pythonでpygameを更新することもできます。なぜ大騒ぎするのか、グーグルを使用して答えを見つけて実装するだけで、難しくはありません。ちなみにpygameは本当にクールです。それらの人はそれに多くの仕事を入れました、そしてそれはとても驚くほど効率的に働きます。


0

GameEngineライブラリに非常に基本的なGUI要素を追加しました:http ://aharrisbooks.net/pythonGame/ch10/ (Pythonでのゲーム開発に関する本に含まれています)

標準のスプライトに基づいた非常にシンプルなGUI要素を作成しました。ラベル、ボタン、マルチラインラベル、ミニスクロールバーです。

これらのツールは非常に基本的ですが、多くの用途に適しています。もちろん、ライブラリは完全にオープンソースなので、必要に応じて自由に変更してください。追加しなかった(まだ)ユーザーインターフェイス要素の1つは、テキスト入力ウィジェットでした。これは、イベントモデルが他のモデルよりもはるかに複雑で、締め切りが迫っていたためです。

(本を使っていてもいなくても)自由に遊んで、問題が発生した場合はお知らせください。お手伝いさせていただきます。

コースのビデオをhttp://synapse.cs.iupui.edu/Mediasite/Catalog/で入手できます

N451コースを見てください。それはゲーム開発に関するものです。


本当に?「1つのユーザーインターフェイス要素」?ツリー、リスト、メニューバー、スライダー、プログレスバー、スピナー、コンボボックス、サイズ変更可能なウィンドウ、サイズ変更可能なペイン、リッチテキストウィジェット、タブについては、ほんの数例を挙げるとどうでしょうか。あなたのライブラリはpygame.orgの他の半ダースの未完成のものと何ら変わりません。

ワオ。それはちょっと怒っていましたね?これは、追加したくない1つのユーザー要素です。好きなものを作ることができます。私はそれらを必要としないので、私は他のものを構築していません。私のフレームワーク(拡張可能に設計されている)に独自のツールを追加するか、独自のツールキットを作成するかは自由です。このプロジェクトを完了するために私をサポートしたいなら、私はそれについて話そうと思っています。しかし、ほとんどの開発者と同じように、私は手形を支払わなければならないので、私が生計を立てることができるプロジェクトは最優先されます。
2つのパイ

それは怒っていません。私はあなたのプロジェクトがPyUIやPGUと変わらないことを指摘しているだけです。シンプルなボタンをレイアウトするための、メンテナンスされていないAPIです。これは「優れた最新のウィジェットツールキット」ではありません。

完全なライブラリーは存在しない(そして他のライブラリーは複雑すぎると思った)と私はあなたに同意しますコミュニティに働きかけます。私が他に何も必要としなかったので、私のライブラリは確かに小さいです。「本格的な」GUIライブラリが役立つことに同意するため、このライブラリや他のライブラリに必要な機能を追加したい場合は、この機能が気に入っています。ただし、通常、ゲームには他のGUIアプリと同じニーズはありません。
2つのpi

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.